新闻中心

EEPW首页>消费电子>设计应用> 基于1394总线的工业相机图像采集程序设计

基于1394总线的工业相机图像采集程序设计

作者: 时间:2009-12-16 来源:网络 收藏

首先,定义类CDib,并在CPictureTestDoc.h中定义共有变量:
CDibm_dib;//CDib类对象,用于位图文件的读写
然后,在CPictureTestDoc.cpp文件中添加功能函数:PictureRead(),在其中加入代码:
CStringstrPathName;
strPathName=_T(TestPicture.bmp);
if(m_dib.Read(strPathName)==TRUE)

SetModifiedFlag(FALSE);//startoffwithunmodified
return;

并在CPictureTestView.cpp文件中的OnDraw(CDC*pDC)函数中,加入如下代码:
CPictureTestDoc*pDoc=GetDocument();
CDib*pDib=pDoc->GetPDib();//返回m_dib的指针
CSizesizeFileDib=pDib->GetDimensions();//获取DIB的尺寸
pDib->Draw(pDC,CPoint(0,0),sizeFileDib);//显示DIB
在OnInitialUpdate()函数中设置滚动窗口:
CDib*pDib=pDoc->GetPDib();//获取DIB的指针
if(pDib!=NULL)
SetScrollSizes(MM_TEXT,pDib->GetDimensions());//根据DIB尺寸设置视窗大小
最后,添加命令菜单,其响应函数为:
voidCPictureTestView::OnTestStart()

  CPictureTestDoc*pDoc=GetDocument();
  pDoc->;pictureGrab();//抓图
  pDoc->;pictureRead();//把读入内存
  OnInitialUpdate();//设置滚动窗口

编译通过后,单击命令,即可实时获取图像。

图1图像 实例
Fig.1Theexampleofimageacquisition

2.4设置
在图像采集时,我们往往需要对的参数如图像格式、分辨率、帧频等进行设定,同时,为了获取高品质图像,我们还需要做白平衡调节。当然,这些参数的设定我们可以在初始化时由代码实现,但是,在实际应用中,为了达到最佳效果,我们需要多次调试才能达成,如果采用修改代码的方法,调试过程会很麻烦。数码相机一般都有设置菜单,我们要做的就是,通过代码来调用相机的设置菜单,设置好参数后,参数会自动保存并加载。这样,调试的时候会方便很多。创建相机设置菜单命令,其响应函数如下:
voidCPictureTestDoc::OnTestCameraset()

pgrcamguiToggleSettingsWindowState(
m_guicontext,AfxGetApp()->m_pMainWnd->GetSafeHwnd());//相机设置对话框


图2相机参数设置界面
Fig.2Fig.4.2Interfaceforsettingtheparameterofthecamera

3结论
本文实现的图像采集系统可通过1394接口对数码机进行格式/模式/帧率的设置,光学参数的设定,采集画面的实时显示,而且能够对摄像机进行自动控制,系统稳定可靠,利用它可以完成一些复杂项目中的实时连续的图像采集过程,如高速公路车辆和车牌的自动识别管理系统、生产中的产品外包装检测系统等,具有很大的实用性.

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭