边干边学机器视觉_图像采集部分(下)
对用labview进行图像处理有帮助。
边干边学机器视觉——图象采集部分下
jing.zhang.zju@
对用labview进行图像处理有帮助。
3.1 多缓冲区采集方式
从前面的章节中,我们学会了如何采集图象。在高速图象采集应用中,我们会发现前面的Grab方式会存在一个问题,即当图象采集速度非常高时,处理程序还来不及处理当前的图象,图象缓冲区里面的数据已经被新的图象数据所覆盖了。
为了解决采集缓冲区不足的问题,我们很自然的想到一个解决方案——增加图象采集缓冲区。
NI-IMAQ提供了两种多缓冲区的方式,一种是Sequence,另一种是Ring,如图3.1所示。
图3.1 多缓冲区图象采集方式
Sequence和Ring都是多缓冲区图象采集方式,它们的区别是,Sequence是单次采集,而Ring是连续采集,类似Snap和Grab。
在Ring方式下,当一个buffer中的数据正在被处理时,新采集到的图象数据会更新到另外的Buffer中去。
下面本文将依次介绍Sequence和Ring的实现方式。
3.1.1 Sequence图象采集方式
Sequence图象采集方式由IMAQ Sequence.vi实现,如图3.2所示。
图3.2 IMAQ Sequence.vi
IMAQ Sequence.vi最重要的参数是Images In,如图3.3所示。Images In是一个图象数据缓冲区引用数组,里面包含了多个由IMAQ Create.vi创建的图象数据缓冲区的引用。只
对用labview进行图像处理有帮助。
有知道多个图象数据缓冲区在哪里,IMAQ Sequence.vi才能完成多缓冲区模式的图象采集。
图3.3 IMAQ Sequence.vi参数
Sequence图象采集方式的完整实现,大家可以参考范例程序中的HL Sequence.vi,如图
3.4所示。
第1,4,5步是大家熟悉的初始化图象采集卡,释放图象采集卡和释放图象缓冲区的程序。
第2步是调用IMAQ Create.vi创建多个图象数据缓冲区,需要注意的是,多个图象数据缓冲区的名字必须不一样。
第3步是调用IMAQ Sequence.vi采集多帧图象数据,当指定数量的图象采集完毕后,IMAQ Sequence.vi会返回并结束Sequence采集过程。
图3.4 HL Sequence.vi
3.1.2 Ring图象采集方式
Ring图象采集方式需要由三个VI来实现,它们分别是
:
,
和。
IMAQ Configure List.vi完成缓冲区列表的配置,告诉驱动程序缓冲区的数量(Number of buffers),以连续还是单次的方式进行图象采集(Continuous?)以及缓冲区的位置(Memory Location)。
对用labview进行图像处理有帮助。
IMAQ Configure Buffer.vi把创建好的图象缓冲区分配到缓冲区列表的对应位置上。 IMAQ Extract Buffer.vi把采集到的图象从缓冲区中提取出来,为后续图象处理做准备。 与上节思路相同,我们打开范例程序中的LL Ring.vi,学习Ring图象采集方式的实现方法,如图3.5所示(由于文档宽度的关系,仅把关键部分代码进行截图分析,以下同)。
图3.5 LL Ring.vi
第一步,调用IMAQ Configure List.vi告诉驱动程序是以Continuous的方式进行图象采集,缓冲区的位置在System——就是开发应用程序的主机上。
第二步,调用IMAQ Configure Buffer.vi把创建好的图象缓冲区关联到缓冲区列表的对应位置上。
第三步,调用IMAQ Start.vi开启一个图象采集的过程,需要注意的是,在调用IMAQ Start.vi前,必须调用IMAQ Configure List.vi和IMAQ Configure Buffer.vi来配置采集过程。
第四步,调用IMAQ Extract Buffer.vi从缓冲区中把图象提取出来。
第五步,把IMAQ Extract Buffer.vi的Buffer to Exact参数设置为-1表示释放当前被提取的缓冲区。IMAQ Extract Buffer.vi在提取图象数据时会对当前被提取的缓冲区进行保护,所以当采集过程完成时,需要释放当前被保护的缓冲区。
Ring图象采集方式实现的主要过程如上所述,其余步骤就是大家已经熟悉的初始化图象采集硬件,释放图象采集硬件和释放缓冲区了。
3.2 触发
很多机器视觉应用,比如生产线上的产品外观检测,并不需要一直在采集图象,而是当产品达到检测位置后,才采集图象并进行分析。
3.2.1 触发信号类型
一般来说,图象采集卡都支持外触发,NI的图象采集卡也不例外,如图3.6所示。
图3.6 PCI-1409 Trigger信号
图3.6是图象采集卡PCI-1409的外部触发信号的说明。触发信号不仅可以启动一个图象采集过程,还能停止一个图象采集过程。通过TRIG端口,NI的图象采集卡不仅能接收外部的触发信号,还能向外部设备发出触发信号,如图3.7所示。
对用labview进行图像处理有帮助。
图3.7 输出触发信号
图3.7中,程序通过调用IMAQ Trigger Drive2.vi向外部输出触发信号,触发信号的驱动信号为Vertical Synchronization Signal(也可以为其它)。图3.7的下半部分是用示波器抓捕到的触发信号。
除了支持外部触发信号外,NI的图象采集卡还可以通过RTSI线和PXI总线传递触发信号,这种特性可以方便系统集成工程师实现与运动控制卡和数据采集卡的高速可靠的同步。触发信号类型可以在参数Trigger Type中选择,如图3.8所示。
图3.8 选择触发信号类型
3.2.2 实现触发方式的图象采集
触发信号虽然种类繁多,但使用起来却非常简单,需要记住的一个原则“在开始采集图象前必须先配置好触发信号”。
与上节思路相同,我们打开范例程序中的HL Triggered Snap.vi,学习触发方式图象采集方式的实现方法,如图3.9所示。
对用labview进行图像处理有帮助。
图3.9 HL Triggered Snap.vi
从图3.9中,我们可以看出,相比基本的Snap采集方式,触发方式下的Snap采集方式仅仅多使用了IMAQ Configure Trigger2.vi对触发进行了配置。它告诉驱动程序触发信号是什么类型(Trigger Type),触发信号从哪个触发端口进入(Trigger Number)以及当触发信号有效后,完成什么动作(Trigger start of acquisition)。
尽管触发信号的使用方式很多,很容易产生一种学起来很难的感觉,不过不要担心,在NI的范例查找器里面,可以找到所有触发信号使用方式的范例程序,如所示,参考范例程序就可以大大缩短学习曲线。
图3.10 使用触发信号的范例程序
到这里,图象的采集过程就介绍完毕了,希望对大家的日常开发工作有所帮助 ,下面将介绍图象采集到计算机后如何保存以及如何从图象文件中读取数据。
…… 此处隐藏:1187字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]石油钻采专业设备项目可行性研究报告编
- [资格考试]2012-2013学年度第二学期麻风病防治知
- [资格考试]道路勘测设计 绪论
- [资格考试]控烟戒烟知识培训资料
- [资格考试]建设工程安全生产管理(三类人员安全员
- [资格考试]photoshop制作茶叶包装盒步骤平面效果
- [资格考试]授课进度计划表封面(09-10下施工)
- [资格考试]麦肯锡卓越工作方法读后感
- [资格考试]2007年广西区农村信用社招聘考试试题
- [资格考试]软件实施工程师笔试题
- [资格考试]2014年初三数学复习专练第一章 数与式(
- [资格考试]中国糯玉米汁饮料市场发展概况及投资战
- [资格考试]塑钢门窗安装((专项方案)15)
- [资格考试]初中数学答题卡模板2
- [资格考试]2015-2020年中国效率手册行业市场调查
- [资格考试]华北电力大学学习实践活动领导小组办公
- [资格考试]溃疡性结肠炎研究的新进展
- [资格考试]人教版高中语文1—5册(必修)背诵篇目名
- [资格考试]ISO9001-2018质量管理体系最新版标准
- [资格考试]论文之希尔顿酒店集团进入中国的战略研
- 全国中小学生转学申请表
- 《奇迹暖暖》17-支2文学少女小满(9)公
- 2019-2020学年八年级地理下册 第六章
- 2005年高考试题——英语(天津卷)
- 无纺布耐磨测试方法及标准
- 建筑工程施工劳动力安排计划
- (目录)中国中央空调行业市场深度调研分
- 中国期货价格期限结构模型实证分析
- AutoCAD 2016基础教程第2章 AutoCAD基
- 2014-2015学年西城初三期末数学试题及
- 机械加工工艺基础(完整版)
- 归因理论在管理中的应用[1]0
- 突破瓶颈 实现医院可持续发展
- 2014年南京师范大学商学院决策学招生目
- 现浇箱梁支架预压报告
- Excel_2010函数图表入门与实战
- 人教版新课标初中数学 13.1 轴对称 (
- Visual Basic 6.0程序设计教程电子教案
- 2010北京助理工程师考试复习《建筑施工
- 国外5大医疗互联网模式分析




