开发工具:
文件大小: 3mb
下载次数: 0
上传时间: 2019-10-19
详细说明:机器视觉-图像采集pdf,本文详细介绍了基于USB摄像头的图像采集和工业相机的图像采集,大家可以根据手中硬件的不同选择不同部分作参考。从软件的视角来看,尽管硬件不同,但编程的模式和思路是基本一致的。Snap
图像处理
缓冲区
图325nap方式采集图像过程
Snap方式的图像米集程序如图33所示:
第1步:调用 IMAQ Init.ⅵ完成图像采集板卡的初始化工作。
第2步:调用Ⅳ MAQ Create.vi为图像数据创建一个数据缓冲区。
第3步:调用 MAQ Snapⅵi从图像采集板卡中读入一帧图像数据,并把它放入先前创
建的数据缓冲区中,并放入 Image中显示。
第4步:当图像数据缓冲区被释放后,我们在前面板上将看不到釆集的图像了,所以特
地添加一个人为的延时程序,等待用户停止
第5步:调用 IMAQ Close. vi,释放占有的图像采集板卡。
第6步:调用 IMAQ Dispose.ⅵi,释放占有的图像数据缓冲区
工mage
Inter face Nen
100
工MAQ工nit, vi IMAQ Snap.vi
工NAQC1o5e,vi
民司
国
st选ts
目
工 AQ Create
IMAQ Di spose
apBufferHIMAQ
回日燃
图33Snap范例程序
单幅图像采集的运行结果,如图34所示。
E查着项目巴拂作工具①亩口业韩
a INI Vision Developmen
SToP
756575039ma1924
图34单幅图像采集
读到这里,大家可能跟我样都有个疑问,为什么必须有第二步和第六步,即创建图
像薮据缓冲区和释放图像数据缓冲区。这是因为每帧图像的数据量都特别大,如果在处理图
像的过程中直接传递图像数据,则非常耗时。長妤的方式是仅仅传递指向该数据缓冲区的引
用。 IMAQ Createⅵ完成的就是创建图像数据缓冲区并返回指向该数据缓冲区的引用的过程。
312基于USB摄像头的Snap操作
USB摄像头的Snap操仵的栏序实现与上面的基本相同,只需婓用 IMAQ USB函数选
板中的函数替代相应步骤即可,如图3.5所示。
Csneralame
status
IMAQ Create
Snap Buffer FIMAQ
回幽
图3.5USB摄像头Snap范例程序
USB设备在正常工作以前,第一件要做的事就是枚举,所以USB摄像头在进行初始化
前,需要先执行第0步,枚举系统中的USB摄像设备,接着:
第1步:调用 IMAQ USB Initⅵ完成USB摄像设备的初始化工作
第2步:调用 IMAQ Create.ⅵi为图像数据创建一个数据缓冲区。
第3步:调用 IMAQ USB Snap.ⅵ从USB摄像设备中读入帧图像数据,并把它放入
先前创建的数据缓冲区中,并放入 Image中显示。
第4步:当图像数据缓冲区被释放后,我们在前面板上将看不到采集的图像了,所以特
地添加一个人为的延时程序,等待用户停止
第5步:调用 MMAQ USB Close.ⅵi,释放占有的USB摄像设备。
第6步:调用 IMAQ Dispose.ⅵ,释放占有的图像数据缓冲区。
USB摄像头Snap范例程序运行结果如图36所示。
p USBCanSnap v
File edit View Project Operate Tols indos HeLp
p叫
Image
Cener aNane
Dk口
B视须备
e NI Vision Development Module
STOP
640450 bit RGB1x104160.8700
图36USB摄像头Snap范例程序运行鈷果
3L3使用Snapⅵ进行连续图像采集的速度问题
在实际工程应用中,连续图像采集的应用占绝大多数。当我们会使用Snapⅵ后,很自
然的想到最简单的连续采集图像实现方式是把Snapⅵ放到 While循环中,如图3.7所
Time Elapsed(ms)
n32
Interface Name
IMAQ Close. vi
LabeN
status
IMAQ Create
IMAQ Dispose
SnapBuffer -IMAQ
st
斷TFF
图37使用Snap进行连续图像采集
Tick Count(ms〕
在 While循环中,加入
可以计算每次循环消耗的时间。运行上述程序,
可以看到使用Sap进行连续图像采集时,获得每帧图像所消耗的时间高达120ms(不同的系
统,时间眳有不同),如图3.8所示。换句话说,在这种方式下,每秒饵只能获得大约8帧
图像,这种速度在大多数实际应用中是不能容忍的。
p Snap,vi
巴回区
文件旧编辑查看项目()操作(Q工具①窗口帮助QD
→回Ⅲ
Interface Name
Image
Time Elapsed(ms
20
a bn Development Mor
忍
下5657605X8h25(148548
服务器6
图38120ms采集一恢图像
为实现高速的连续图像采集,NIⅵ ision module提供了一个专用于连续图像采集的ⅤI,
IMAQ Grab Acquire vi
MAQ Grab Acquire.i,L通
。下节本文将详述如何迸行连续图像采集。
32采集连续图像
MAQ Snap. vi运行速度之所以会慢,是因为 IMAQ Snap.ⅵi除了实现图像数据采集的操
作外,还实现了许多初始化和资源释放的操作,大家可以双击 IMAQ Snapⅵ,看看MAQ
Snap.v的实现过程,如图3.9所小。
I Falst m
Ing?e In Bezion of Interest
5:s
Chann
图39 IMAQ Snap.v
PS看N提供的I的内部实现方式是一种很好的学习方式。—代码阅读
了解了速度慢的原因后,很自然的想到,既然是连续采集,何不把许多雷同的初始化操
作提取出去,在每次连续采集开始吋,仪做次初始化就可以。为实现快速旳连续图像采集,
ni Vision module提供了两个V,一个是 IMAQ Grab Setup.vi,另一个是 MAQ Grab
Acquireⅵi。 MMAQ Grab Setup.ⅵ负责每次连续采集前的初始化, IMAQ Grab Acquire,vi专
注于图像采集。
321基于图像采集卡的Grab操作
基于图像采集卡的连续图像采集的实现代码如图3.10所小。
Time Elapsed (m
2
Ina
Inter face Nane IMAQ Grab Setup. vi IMAQ Grab Acquire
IMAQ Close. vi
abel
status
工 MAQ Create
工 MAQ Di spose
Snap Buffer HIMRQ
stop
TF Hss
图3.10连续图像数据采集
第1步:调用 MAQ Init.ⅵ完成图像采集板卡的刨始化工作,
第2步:调用 IMAQ Grab Setup.ⅵi初始化Grab过程。
第3步:调用 IMAQ Create vi创建图像数据缓冲区。
第4步:调用 IMAQ Grab Acquire v快速米集图像数据。
第5步:调用 MAQ Close. vi,释放占有的图像采集板卡。
第6步:调用 MAQ Disposeⅵ,释放占有的图像数据缓冲区。
使用 IMAQ Grab Acquire,ⅵi,米集每帧叁像的时间从120m降到了40ms,如图311所
Grab.ⅵi
回区
文件(编怎查看②项目②操作①)工具D国帮助山
Image
nterface Name
nme Elapsed m分
40
kQ+/口合
2 Vision Development Module
756x576058bme185(4924)
图311 MAQ Grab Acquire运行结果
322基于USB摄像头的Grab操作
同上,USB摄像头的Grab操作的程序也与基于图像采集卡的实现过程基本相同,如图
3.12所示:
第0步:调用 IMAQ USB Enumerate Camera.ⅵi枚举USB摄像头。
第I步:调用 IMAQ USB Init. Vi完成USB摄像头的初始化工作。
第2步:调用 IMAQ USB Grab Setup.vi初始化〔rab过程。
第3步:调用 IMAQ Create vi创建图像数据缓冲区。
第4步:调用 IMAQ USB Grab acquire.ⅵ快速采集图像数据。
第5步;调用 IMAQ USB Closeⅵi,释放占有的USB摄像头。
第6步:调用 MAQ Disposeⅵi,释放占有的图像数据缓冲区
Time El
d ms)
Camer aame
p⊥b
MAQ USB Grab Acquire vi
工 MAR USB C。se.v
SEOr
stat
IMAR Creat白
IMAQ Dispose
sto
SnapEuffer IMAQ
TEH
图312USB摄像头的连续图像采集过程
使用 IMAQ USB Grab Acquire vi实现连续图像采集后,采集每帧图像的时闻下降到了
35m毫秒左右,如图3.13所示。
2 USBCangrab.可i
File Edit view Project Operate Tools Lindow Help
协回叫
CameraName
UB视烦设备
ime丑1 apsed ms
evelopment Module
NATION
INSTRUMENTS
STOl
604005X32++B1m19:014800
图3.13USB摄像头连续图像采集结果
33多缓冲区采集方式
从前面的章节中,我们学会了如何采集图象。在高速图象采集应用中,我们会发现前面
的Grab方式会存在一个问题,即当图象采集速度非常高时,处理程序还来不及处理当前的
图象,图象缓冲区里面的数据已经被新的图象数据所覆盖了
为了解决采集緩冲区不足的问题,我们很自然的想到个解决方案——增加图象采集缓
冲区。
NI-IMAQ提供了两种多缓沖区的方式,一种是 Sequence,另一种是Ring,如图3.14
所小
Buffer 0
Buffer O
Ring P-◆ Buffer1
Processing
Sequence
Buffer 1
Butter []
Buffer[n·1
图3.14多缓冲区图象采集方式
Sequence和Ring都是多缓冲区图象采集方式,它们的区别是, Sequence是单次采集,
而Ring是连续采集,类似Snap和Grab
在Ring方式下,当一个buir中的数据止在被处理时,新采集到的图象数据会更新到
与外的Buer中去。
下面本文将依次介绍 Sequence和Ring的实现方式
331 Sequence图象采集方式
Sequence图象采集方式由 IMAQ Sequence. vi实现,如图3.15所示。
N-IMAQ
个索[8查看
Grab Setup Grab Acquire Sequence
Low-Level
F
Initialize
Close
Signal IfO
Create LUt Color Decode属性节点
Camera control
图315 IMAQ Sequence. vi
IMAQ Sequence. vi最重要的参数是 Images In,如图3.16所示。 Images in是一个图象数
据缓冲区引用数组,里面包含了多个由 IMAQ Create创建的图象数据缓冲区的引用。只
有知道多个图象数据缓冲区在哪里, IMAQ Sequence. vi才能完成多缓冲区模式的图象采集。
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.