3.1 基于AclivrMil的图像采集程序
对Matrox图像采集进行图像采集二次开发的通用软件结构如图6所示。
图像采集程序的基本思路是:
1)打开通信通道,即确定一个应用对象(Application),并对每个应用对象创建一个或多个系统对象(System)。
2)初始化硬件资源,即为每个系统对象分配数据缓存(Data Buffer)、数据采集器(Digitizer)和数据显示(Display)对象。
3)启动采集过程,即将图像读入数据缓存,并将缓存赋值给数组,通过对数组的处理实现对图像的处理,图像数据与数据显示相关联后就可以通过显示控件或窗体显示预处理后的结果。
AetiveMIL可以让开发者快速简单地将一个图像应用程序和Windows用户界面结合起来。应用程序开发包含拖动和滚动工具放置以及加标点和单击配置,充分地减少代码量。在.net framework3.0卡发环境下,安装MIL开发包并正确配置后,Application、System、Image、ImageProcess、Display等组件将自动添加到工具栏。
开发者将所需用的控件拖拽到图像采集窗体上,一个Application,对应于单镜头手动外观机,一个System,单窗体显示——一个Disp-laly,为了提高CPU使用率应启用双缓存异步采集——两个ImageBuffer,及一个ImageProcess。
3.2 双缓存异步采集思想
Matrox MeteorII图像采集卡支持同步和异步两种采集方式。
同步采集方式适用于连续采集显示图像而不做运算处理的情况,这是因为同步采集方式下,在每次采集图像之前,CPU都向采集卡发送采集同步信号,然后等待采集结束,所以在采集过程中CPU由于得不到图像数据而只能处于等待状态。由于CCD仅采集一帧图像就需要40 ms左右,这与人的视觉滞留大致相当,所以在同步方式下无法保证采集和处理在40 ms内完成,也就无法达到实时处理的要求。