基于Matrox Meteor-Ⅱ/Digital的图像采集系统研究
扫描二维码
随时随地手机看文章
摘要:针对Matrox Meteor-II/Digital图像采集卡配套软件不具有实时数据处理功能的问题,根据项目需要提出了一个基于Matrox Meteo r-Ⅱ/Digital图像采集卡的图像采集系统,并完成了系统搭建及软件设计。该系统的硬件平台由CCD、Matrox Meteor-II/Digital图像采集卡及计算机组成;软件部分基于Matrox图像采集卡的模式识别库函数(Matrox Imaging Library),用VC++多线程编程来实现连续图像采集和单帧存储及实时处理等功能。试验表明,该系统操作简单、方便,且已经在实验室正常运行。
关键词:图像采集卡;连续图像采集;单帧存储;采集处理系统;多线程编程
简单的计算机图像处理系统由摄像头、微机及图像采集卡构成,其结构简单,应用广泛。与传统的图像显示、处理比较,利用图像采集卡软件基本控制库对摄像机摄取的模拟图像信号进行数字转化,提供计算机处理所需的数字图像信号,对现有的图像文件的读取、处理,都具有实现简单、原理清晰、通用性好的优点。
在众多的图像采集产品中,加拿大Matrox公司的图像采集卡,别具特色。它用RS-422或LVDS差分信号标准,采集黑白/分量RGB,面阵/线阵信号,是一种PCI或PC/104-Plus格式视频采集卡。并且将极具价值且功能强大的函数扩展性能集成到了采集卡上,可以实时采集且将采集到的图像传输到系统内存进行处理或显存以实时活动视频窗口进行显示,速率可达130MB/s。
正因为如此,使得Matrox Meteor-Ⅱ/Digital图像采集卡脱颖而出。但是,由于其连续图像采集不能实现实时存储的功能,所以就对研究连续图像的变化、图像实时处理和分析带来了极大的不便。于是,根据项目需要,文中提出了基于Matrox Meteor-II/Digital图像采集卡的硬件平台以及其图像识别库函数(MIL)的图像采集系统,主要是在CCD摄像机的采集速率比较低(例如:在图片大小为1 024x1 024像素下,采集速率为4帧/秒)的情况下,调用MIL函数库里的单帧采集函数来实现连续图像实时采集、显示及处理,并且把实时采集到的每帧图像及处理结果都分别存储。
1 系统整体设计
针对实验室中某航天项目中需要进行图像实时采集处理的需求,结合Matrox Meteor-Ⅱ/Digital图像采集卡的硬件平台以及其图像识别库函数(MIL),经过分析得到需要设计的系统如图1所示:CCD捕捉外界的光信息并转换为电信号,该电信号经传输到图像采集卡采集,然后通过图像采集卡的PCI接口将采集到的图像数据传送到计算机,在计算机中内存中进行实时处理及存贮,并同时显示。
要想完如上功能,必须做好如下事情。图像采集卡要开辟卡上临时存贮单元,以完成图像数据的临时存贮及处理;CCD采集速率不能太高,需要满足下一幅图像信息到来之前,本副图像数据已经完成处理及存贮,这里选择CCD采集速率为4帧/秒,符合试验要求;在计算机种开辟内存,编写相应的图像处理程序。
2 采集系统硬件平台
该采集系统采用的CCD为非标准单色相机,实验室自行购置并经过改进,采集速率为4帧/秒,每帧图片大小为1024x1024像素。计算机为Windows XP系统平台,1G内存,160G硬盘,CPU频率为2.7GHz。
图像采集卡为Matrox Meteor-Ⅱ/Digital图像采集卡,该卡的主要特点如下:
a.采集数字面阵/线阵信号,包括多抽头配置
b.32-bit宽RS-422或LVDS接口(可配置4x8-bit,2x16-bit,1x32bit)
c.采样率RS-422下达到25MHz,LVDS下达到40 MHz
d. 可配置LUT(4个256x8-bit或2个4 k×16-bit)
e.触发输入,时钟输出(分离的RS-422/LVDS像素时钟(入和出),行/场同步(入和出),有效输出和两路计时器(曝光)输出)
f. PCI总线主模式32-bit/33 MHz
g.实时传输到系统或显卡
h.扩展板上缓存,确保采集
i.RS-232串口
j.软件包括Matrox Imaging Library(MIL)/ActiveMIL,MIL-Lite/ActiveMIL-Lite和Matrox Inspector
3 软件实现
Matrox公司图像采集卡带有丰富的程序库-MIL-LITE(基本控制库)和MIL(Matrox Imaging Library模式识别库),具有易于使用的特点。它通过引入“函数驱动层”,使源代码具有硬件无关性,可实现对Matrox不同图像采集卡以及不同CCD配置的操作和使用。在VC中调用图像采集卡的图像采集处理函数,就可以做到集成性好,信息获取直观,编程方便,实现图像采集任意存储的目的。故软件系统采用WindowsXP操作系统作为系统软件运行平台,在Windows XP下,利用VC++语言编程通过调用MIL库函数实现图像采集。
利用MIL库首先必须分配一个应用对象,相当于创建一个图像处理的控制和执行环境,在应用对象下可以建立多个系统,一个系统下可以建立多个数据缓存、数字转换器和数据显示,将图像文件读入数据缓存,将缓存内容放到指定的文件,这样就可以实现图像的任意存储和显示。其软件组织结构和流程图如图2所示。
在建立程序框架之前,需要将图像采集卡自带的安装程序解压,再利用VC++的MFC应用程序向导生成多文档用户操作界面,命名该工程为My。再将图像采集卡文件夹里面的后缀名为.lib和.dll文件都复制到工程目录下面,这里用添加静态链接库的方法调用MIL库函数来实现的。用VC++6.0打开工程,在CMy.h中添加所需要的所有的头文件,在Project->Settings->Link目录下面的Category下面选择Input选项,然后将所有的.lib文件完全名称写入Object/Library Modules下面的编辑框中,再在下面的Additional Library Path中输入..\lib,点击“OK”。这样,才可以正确调用MIL库函数。
在CMy.h头文件中添加定义:
这里采用多线程编程的方法通过外部的按钮控制图像采集的中断与继续。首先定义全局函数MilCreat来实现图像采集中的临时存放buff er(MilImageContinuous[0],[1])的初始化。定义全局变量stop,初值为false(stop用来控制图像的采集与停止,stop的初始值为true,若stop为false表示开始采集,stop为true表示停止采集)。设置图像存储路径及名称后,调用如下线程:
这样就可以实现图像的实时显示与存储。根据不同的要求,也可以调用Mil库中的MbufExportSequence()函数将连续采集中的图像存储到一个文件中形成AVI视频流文件的格式,也可以存储成.raw格式。采集到的图像暂时存放在自己定义的buffer中,在保存到本地磁盘之前可以进行实时图像处理,也可以根据要求设置采集的时间和采集的帧数。
4 实验应用
该测试系统用于某型航天项目实验室研制中的图像采集处理应用。使用时,首先运行该测试应用软件,初始化相关板卡后,然后通过点击主程序界面的相应的菜单测试按钮进行相应的图像采集处理功能。其中图像实时实现部分在程序启动后中间空白部分就一直显示CCD捕捉到的信息,但点击实时存贮时,图像会存贮在预先设定的计算机中的相应的目录下面;点击实时处理,可以调节图像的开窗大小等。程序面板的部分界面如图4所示。通过实验室应用发现,该测试系统测试结果准确、稳定可靠。
5 结论
该采集系统采用Matrox Meteor-II/Digital图像采集卡与计算机为硬件平台,软件设计采用VC++软件设计思想,提高了系统的可靠性和维护性。该测试系统已用于某航天项目实验室图像采集,实际应用表明该测试系统具有测试准确、稳定可靠、人机界面友好等特点,达到了设计要求。