您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 机器视觉-图像采集.pdf
  所属分类: 其它
  开发工具:
  文件大小: 3mb
  下载次数: 0
  上传时间: 2019-10-19
  提 供 者: weixin_********
 详细说明:机器视觉-图像采集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最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 输入关键字,在本站1000多万海量源码库中尽情搜索: