完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
点击学习>>《龙哥手把手教你学LabVIEW视觉设计》视频教程
第1章节(下) rolex cellini replica 在上回我们逐一介绍与机器视觉相关的专有名词与周边光学设备,在本回要开始来说明如何使用labview来截取相机的影像,并正确的显示在人机介面上﹔另外也针对NI Vision所提供的影像校正模式进行说明,以及如何利用软体方式来设定相机的属性与触发取像模式。 audemars piguet royal oak offshore chrono auto replica 1.2 软体截取与显像 1.2.1 NI MAX影像装置确认 在前面一小节介绍了架设整个影像系统所需要的硬体相关设备,现在要来说明如何在NI MAX找到已安装的相机,并且从相机中取得影像。 当我们打开NI MAX,在「My System--》Devices and Interfaces--》NI-IMAQdx Devices」下,可找寻已安装成功的相机,点选相机后,按下右边画面的上方「Grab」键可进行连续取像,另外红色框选处可以找到一些关于相机的规格与内部参数设定,画面下方有显示影像的基本参数,包括目前影像大小、缩放比例与像素的颜色值,另外下方的tab表单处可以找到一些关于相机的规格与内部参数设定。 replica miu miu tote bags 图1.26- 在NI MAX下进行取像作业 1.2.2 IMAQ影像截取模式 现在要来练习如何使用LabVIEW来取得相机的影像。如果您过去曾经使用LabVIEW来开发NI相关产品,如DAQ设备等,不难发现LabVIEW在相关套件中都会提供两种开发模式:1. 高阶元件(HL);2. 低阶元件(LL) ,同样地在IMAQ套件裡也存在这两种开发模式。 高低阶模式并不是将元件区分为高低等级,所谓的高阶元件主要是将资源开启、撷取、关闭全包装成一个Express VI,可以帮助使用者快速地完成取像相关的程式设定,就能直接将影像输出到LabVIEW上;而低阶取像元件将功能切割为数个VI,需由使用者自行设定元件才能完成取像动作,好处在于能够让使用者更有弹性的唿叫参数设定,而另一个优点在于,与高阶元件相比,少了反覆建立与关闭资源的动作,可以有效降低系统资源浪费。 高阶(HL)取像元件使用步骤 安装完LabVIEW的IMAQ套件后,可在Block Diagram(简称BD)下,按下右键跳出Function Template后依序往下搜寻「Function Template --》 Vision and Motion --》 Vision Express --》 Vision Acquisition」(图1.27),将「Vision Acquisition」元件拉到BD上,会自动启动设定画面。 图1.27- Vision Acquisition元件位置 A. 设定的取像来源(Select Acquisition Source) 左侧「Acquisition Sources for Localhost」可以检视目前安装在电脑上所有相机名称,选择位于「NI-IMAQdx Devices」的相机「cam0: Balsler …」,为本次取像用的相机,接着可以按下右方连续取像按键,测试相机是否有正常被Initialize并取到像;右下角有提供一些关于相机的基础数值(参考图1.2.2)。 图1.28- 设定的取像来源 B. 设定撷取影像操作方式(Select Acquisition Type) 共分成4种类型:
图1.29- 设定撷取影像操作方式 这个项目我们先选择「连续取像」模式,继续往下设定。 C. 设定取像参数「Configure Acquisition Settings」 可依据环境因素来调整相机的参数达到最佳化,如增益值(Gain)、Gamma、取像模式等,设定过程可以同时按下右上方的「Test」键来观察设定结果,这边我们暂时不做任何需要设定,直接往下一步。 图1.30- 设定取像参数 D. 设定是否将影像储存到硬碟(Configure Image Logging Settings) 若将「Enable Image Logging」勾选,表示将撷取到的影像储存到下方指定的资料夹位置,并可设定储存的影像格式,值得注意的是,若开启此功能可能因为硬碟存取速度的关係,使得最大取像速度降低。 图1.31- 设定是否将影像储存到硬碟 E. 设定影像参数输入与输出「Select Controls/Indicators」 可依据应用,开放影像参数供外部控制元件(Control)设定,让该取像用的Express VI获得输入与输出的功能,在此我们勾选显示元件(Indicator)中的「Image Number」与「Frame Rate」,最后按下「Finish」键完成设定。 图1.32- 设定影像参数输入与输出 图1.33- HL取像元件自动产生的程式码 图1.34- HL取像元件自动产生的人机介面 低阶(LL)取像元件使用步骤 操作之前我们先来了解「NI-IMAQ」与「NI-IMAQdx」两者的差异;「NI-IMAQ」一般只能用于NI的影像撷取卡或相机,而「NI-IMAQdx」是可驱动第叁方的相机,如Basler的USB3.0相机,凡是通过影像传输介面协定联盟(如GigE、Camera Link或USB3.0)认证的相机,都可使用「NI-IMAQdx」来驱动。 使用低阶取像元件来驱动第叁方相机时,需同时使用到「NI-IMAQdx」与「NI-IMAQ」影像模组;主要是利用「IMAQdx」来撷取相机的影像,然后再利用「IMAQ」创立的影像空间来储存影像,「IMAQ」同时还提供影像处理工具及机器视觉工具,可依据使用者需求来做应用开发。 利用LL元件来完成连续取像的功能,操作流程图如下: 图1.35- 使用IMAQdx与IMAQ取像流程图 先在Front Panel建立一个「IMAQdx Session」与「Image Display」,物件分别位于「Control Template --》 Modern --》 I/O --》 IMAQdx Session」与「Controls Template --》 Vision --》 Image Display」,最后再放置一个Boolean,名称设为「Stop」。 图1.36- Image Display物件放置区域 跳到Block Diagram,分别在「Function Template --》 Vision and Motion --》 NI-IMAQdx --》 Low-Level」与「Function Template --》 Vision and Motion --》 Vision Utilities --》 Image Management」找到以下几个功能VI: 图1.37- IMAQ Create与Dispose物件 图1.38- IMAQdx的设定取像物件 将这几个功能VI依照操作流程步骤完成,程式码如下: 图1.39- Low Level取像元件程式码 步骤说明: 1. 指定开启相机名称,从「IMAQ Session」中选择对应的相机名称 2. 设定相机取像模式为「连续」,Image Buffer设为「3」 3. 开始取像 4. 任何由外部取得的影像,都需透过IMAQ建立一组记忆体空间来储存,由于取像来源是彩色相机,每一张彩色(RGB)影像需要3*8bit的空间来储存,所以「Image Type」要选择「RGB U32」 5. 进入While迴圈后,会不断将影像覆盖到记忆体区内,此时将影像接到Display Image即可在人机介面观察到影像,直到按下「Stop」或Error产生时才会跳出迴圈 6. 停止取像 7. 解除相机设定 8. 结束指定名称的相机作业 9. 清空储存影像的记忆体空间 最后再转换画面到FP,启动程式后就会开始连续取像,直到有人按下人机上的「Stop」键,停止取像。 使用上述两种开发模式都可以成功将相机的影像撷取到LabVIEW,有了这些影像来源(Image Source)后,就可以再继续往下做影像后处理(Image Process)与机器视觉(Machine Vision)的应用了。 1.2.3 影像软体校正 确认影像系统能正常取像后,首先要做的是对整个影像系统做校正,为何还要多此一举呢?主要塬因有两点: 1. 真实世界描述物体的单位可能是吋(inch)或公厘(mm),但在影像系统裡,描述影像的是像素(pixel),这两者之间必须存在一单位转换公式,影像才有办法转换成真实比例,对于尺寸量测或视觉对位类型的应用特别重要。 2. 前面章节曾提到视觉系统可能因为镜头的失真(Distortion),或者因为相机投射方向与检测物表面非完全垂直,这两种情况都会造成影像变形,需透过影像校正来修正这些变形量。 在NI VISION(IMAQ)有提供以下几种校正模型,主要目的在于单位转换与修正变形量: 图1.40- NI VISON提供的校正模型 1. Point Distance Calibration:在影像变形量轻微且忽略不计下,利用真实世界两点距离与像素之间做单位转换 2. Point Coordinates Calibration:已知真实世界点位置座标与影像中的像素座标做对应,用来修正非垂直透视投影所产生的变形 3. Distortion Model (Grid):利用相机拍摄一张格点校正片的影像,可同时修正镜头失真与非垂直透视投影所造成的失真 4. Camera Model (Grid):利用多张格点影像进行相机模型校正,包括焦距、影中心点与影像失真,一般常用于机械手臂定位应用 5. Microplanes (Grid):修正在非平整的工作表面所造成的影像失真 1.3 相机的属性与触发模式设定 1.3.1 相机属性说明 了解如何透过LabVIEW来取得影像后,另外可针对相机的部分属性进行参数的微调,一些常用的参数有: 1. Analog Controls • Gain Auto:可设定自动或手动增益 • Gain(Raw):设定增益值,会直接影响黑跟白的对比,调高Gain值,不仅会强化影像的对比强度,同时也会将杂讯的放大 2. Image Format Controls • Image Format Controls:若使用的是彩色相机,可将影像设为灰阶(Mono)或彩色格式(Color)﹔若使用的是黑白相机,则只能设定灰阶影像输出 3. Acquisition Controls • Trigger Mode:开启或关闭触发功能 • Trigger Source:可选择软体触发(Software)或者硬体触发(Line) • Generate Software Trigger:当触发模式设定为Software时,执行相机后,每按一下取一张影像 • Exposure Auto:开启/关闭自动曝光,一般都设定为关闭 • Exposure Mode:可设定固定曝光时间(Timed)模式,或者是脉衝宽度(Trigger Width)模式,由触发讯号的脉衝持续时间的来决定曝光时间 • Exposure Time:设定固定曝光时间,曝光时间越长,画面亮度会有所提升,曝光时间如果拉得太长会产生过曝,如果遇到晃动也容易产生残影 1.3.2 触发模式说明 硬体触发(Line): 一般工业相机都会提供数组硬体触发讯号(Line),可以接收来自外部IO卡的讯号,当相机收到触发后,立即撷取一张影像,常使用在高速影像撷取或Line Scan的应用。 以Line Scan为例,利用运动装置逐行对待测物进行线扫描,每一条影像间距需相同,否则会产生影像变形。利用运动装置的编码器与相机的硬体触发做结合,设定编码器的光学尺每移动固定距离就发送一组讯号,当运动装置移动一段距离,相机会立即收到一组触发讯号,接着完成取像动作,这样做法可确保取到的影像间距都相同。 图1.41- Line Scan的示意图 软体触发(Software): 在无硬体触发情况下,还是可以利用软体方式模拟触发讯号,例如可在人机介面上设立一颗Boolean按键,若按键的机械模式为「Latch when Release」,当按键按下后放开,正缘触发(Positive Edge)成立,立即透过软体方式告诉相机撷取一张影像,这种触发方式适用于大部分视觉应用。 除了在NI MAX下的「NI-IMAQdx èCamera Attributes」可做参数设定外﹔若使用HL开发方式,可在「Express VI èVision Acquisition」的「Configure Acquisition Settings」选项中做设定;而使用LL元件开发,需先利用「NI-IMAQdx èEnumerate Attributes」来读取目前使用相机所有可以设定的参数名称(Attribute Name),再将参数名称输入到Property Node的「Active Attribute」功能,并且指定对应的资料格式来完成参数写入。 图1.42- NI MAX下的属性设定 图1.43- 使用NI-IMAQ Express VI属性设定画面 图1.44- 使用LL取像元件的属性设定方式 |
|
相关推荐
185 个讨论
|
|
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 20:43 , Processed in 0.547616 second(s), Total 48, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号