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

[09-14 01:02:42]   来源:http://www.88dzw.com  电子制作   阅读:8552

文章摘要:3)包含相机控制类的头文件,在工程中的CPictureTestDoc.h文件中加入头文件:#include <pgrflycapture.h>#include <pgrcameragui.h>并定义共有变量:FlyCaptureContext context; //相机功能句柄CameraGUIContext m_guicontext; //图形用户界面(GUI)句柄4)用相机采图时,首先需要对其初始化,这部分工作我们希望在应用程序打开时由系统自己完成。在工程中的CPictureTestDoc.cpp文件中对相机进行初始化:首

基于1394总线的工业相机图像采集程序设计,标签:电子小制作,http://www.88dzw.com
3)包含相机控制类的头文件,在工程中的CPictureTestDoc.h文件中加入头文件:
#include <pgrflycapture.h>
#include <pgrcameragui.h>
并定义共有变量:
FlyCaptureContext    context;       //相机功能句柄
CameraGUIContext             m_guicontext;  //图形用户界面(GUI)句柄
4)用相机采图时,首先需要对其初始化,这部分工作我们希望在应用程序打开时由系统自己完成。在工程中的CPictureTestDoc.cpp文件中对相机进行初始化:
首先,在构造函数中对定义的功能句柄初始化:
        context=NULL;       //相机功能句柄初始化
        m_guicontext=NULL;  //图像用户界面句柄初始化
然后,在OnNewDocument()函数中连接相机并初始化:
        flycaptureCreateContext( &context );//连接相机
        guierror=pgrcamguiCreateContext( &m_guicontext );//创建GUI连接
        flycaptureInitialize( context, _CAMERA_INDEX );//相机初始化
2.2  图像抓取
      在一些自动化系统中,可能在多处用到抓图代码,因此为增强程序的可读性,减少编程代码,我们编写一个功能函数,由它来完成抓图并保存功能,这样在需要的时候,直接调用函数即可。在CPictureTestDoc.cpp文件中加入功能函数PictureGrab(),用它来实现图像抓取,其核心代码如下:
flycaptureStart( context, 
   FLYCAPTURE_VIDEOMODE_ANY,
   FLYCAPTURE_FRAMERATE_ANY );//相机开启,其中三个参数分别为:相机功能句柄,视频模式,帧频
flycaptureGrabImage2( context, &image );//抓图,image是图像在内存中的存放地址
        flycaptureConvertImage( context, &image, &imageConverted );//图像格式转换,imageConverted为转换后图像在内存中的地址
flycaptureSaveImage(context,&imageConverted,("TestPicture.bmp"),SAVE_FORMAT_C );//保存图像,TestPicture.bmp为图像保存名称,SAVE_FORMAT_C为图像保存格式,即BMP格式
flycaptureStop( context );//停止相机
通过上述程序抓到的图像,保存在本工程文件夹中,这样,在后续的图像处理时,可以在程序中直接通过文件名访问图像文件,而不需要添加路径,简化了程序代码。
2.3  图像显示
      Windows位图由两种:DDB和DIB。前者依赖于设备(Device Dependent Bitmap),与MFC 6.0中的CBitmap类相对应,它们在内存中的结构和位置依赖于管理它们的设备驱动。DIB是一种“格式”,它可以存放在内存中,也可以存储成文件,即常见的BMP文件。Visual C++的MFC中,以CBitmap类代表DDB图像,极大地方便了编程人员对DDB的使用。然而通常情况下,没有人会把DDB图像存储成文件,因此我们使用更多的是DIB,遗憾的是MFC对于DIB的支持几乎可以说是没有,因此在编制图像处理的程序时,有必要设计可以重复使用的类CDib,专门用来处理DIB[4](关于CDib,读者可以参阅相关书目,本文不再累述)。本文中,为了方便后续的图像处理,在图像显示时采用类CDib技术。因为在实际应用中,我们往往需要图像的连续读入,因此本文直接采用文件名读入图像,这样可以使采集的图像实时的显示。

www.88dzw.com
      首先,定义类CDib,并在CPictureTestDoc.h中定义共有变量:

上一页  [1] [2] [3]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作

《基于1394总线的工业相机图像采集程序设计》相关文章