首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 电子制作
基于1394总线的工业相机图像采集程序设计
来源:本站整理  作者:佚名  2009-12-16 09:18:29




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

并在CPictureTestView.cpp文件中的OnDraw(CDC* pDC)函数中,加入如下代码:
CPictureTestDoc* pDoc = GetDocument();
CDib *pDib=pDoc->GetPDib();//返回m_dib的指针
CSize sizeFileDib = 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尺寸设置视窗大小
最后,添加图像采集命令菜单,其响应函数为:
void CPictureTestView::OnTestStart() 

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

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

图1 图像采集实例
Fig.1 The example of image acquisition

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

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


图2 相机参数设置界面
Fig.2 Fig. 4.2 Interface for setting the parameter of the camera

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

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:262,574.20000 毫秒