从零开始Labview机器视觉-图像采…

来源:互联网 发布:go语言服务器编程 编辑:程序博客网 时间:2024/06/02 18:02
上个效果图先
从零开始 <wbr>Labview机器视觉-图像采集

   捣鼓这个东西1个多礼拜了。从开始连NI是啥都不知道,瞪着MAX不知编程界面在哪,到后来反复折腾VAS、LV、VDM安装顺序(刚开先装VAS后装LV找不到imaq的vi还不知道啥原因),然后看网上的教程,不知道各种图标是什么函数,到现在终于把USB相机采集图像的这个小玩意做出来,中间走了不少弯路。这里姑且把思路整理一下,重做一遍全当复习之用,也适合毫无基础的人看。

   开始之前说说教程,除了网上被无节操转发的“边干边学机器视觉第三章”之外
http://wenku.baidu.com/view/fb6c11f3f90f76c661371abc.html
(确实写得不错,不过我这种白手起家的看不明白就是了=A=)

推荐少茗大神的博客:
http://blog.csdn.net/fzxy002763/article/details/6978413 
USB错误那块看了他的博客才解决的,感谢。


安装软件
1.安装Labview中文版:https://lumen.ni.com/nicif/zhs/evallv/content.xhtml
2.安装Vision Acquisition Software (VAS):http://joule.ni.com/nidu/cds/view/p/id/3818/lang/zhs
  我的理解这个东西的作用主要是提供硬件驱动
3.安装Vision Development Module (VDM): http://joule.ni.com/nidu/cds/view/p/id/1220/lang/zhs
 我的理解这个东西的作用主要是提供机器视觉相关的函数(包括Labview与其他编程工具)
*注意:一定要先装Labview,如果顺序不对,会出现LV中无IMAQ函数Vision控件等不良后果。
 以上组件安装评估版后使用NI LicenseActivator破解激活,自行网上搜索。  

使用USB相机需要额外安装以下两个玩意儿
4.安装imaq USB,NI为USB相机做的补充包:http://zone.ni.com/devzone/cda/epd/p/id/5030
*注意:WIN7下安装方法有所不同(下载页的提问处也有):
  http://pan.baidu.com/share/link?shareid=543299&uk=285598325
5.下载少茗提供的dll,覆盖至C:\Windows\System32文件夹下,否则使用USB相机时有几率出现错误:
  IMAQvision: Minimum coverage value should be greater thanzero.
 地址:http://download.csdn.net/detail/fzxy002763/3803300
  有CSDN积分的都去少茗的空间下载支持一下他,dll文件在压缩包里
  实在没分的移步百度盘:http://pan.baidu.com/share/link?shareid=543288&uk=285598325


使用USB相机采集图像
打开NI MAX看看是否可以识别相机,能识别到就可以关掉NI MAX了。
从零开始 <wbr>Labview机器视觉-图像采集

打开Labview建立一个空白vi
从零开始 <wbr>Labview机器视觉-图像采集

Labview的编程界面有两个:前面板和程序框图,如果只有前面板,请点击窗口菜单下“显示程序框图”
从零开始 <wbr>Labview机器视觉-图像采集

从零开始 <wbr>Labview机器视觉-图像采集

下面开始讲解如何一步步做出“边干边学系列第三章”里的USB相机例程。
先给没用过Labview的人说句题外话…LV编程有点象积木游戏…感觉就是把你需要的积木(控件、函数)拿进来,然后合理地把他们拼起来(连接数据流)就行了。

在前面板添加image display控件(Vision菜单下),三选一,外观不同而已。
从零开始 <wbr>Labview机器视觉-图像采集


添加一个取消按钮(系统->布尔)标签和按钮名按自己喜好改:从零开始 <wbr>Labview机器视觉-图像采集

添加字符显示控件:
从零开始 <wbr>Labview机器视觉-图像采集

前面板如图
从零开始 <wbr>Labview机器视觉-图像采集
程序框图里会出现对应的控件

从零开始 <wbr>Labview机器视觉-图像采集

程序框图中可以右键点控件图标,取消“显示为图标”可以简洁一些。控件和函数位置什么的自己根据编程需要随便拖-U-。
从零开始 <wbr>Labview机器视觉-图像采集

控件这些就够了,下面添加函数
首先枚举计算机上USB相机设备:程序框图中右击空白处,视觉与运动->IMAQUSB->USB Enumerate
从零开始 <wbr>Labview机器视觉-图像采集
这个函数输出的是一维数组,所以要提取数组中的元素,使用数组->索引数组函数提取元素
从零开始 <wbr>Labview机器视觉-图像采集

添加USB相机初始化函数:视觉与运动->IMAQUSB->IMAQ USB Init 添加完程序框图上会有这些东西
从零开始 <wbr>Labview机器视觉-图像采集
把他们连起来,方法是点一个函数边框上的头,然后点另外一个 o =_.= o
从零开始 <wbr>Labview机器视觉-图像采集
这里可以打开vi的即时帮助
从零开始 <wbr>Labview机器视觉-图像采集

这样当你把鼠标放在什么地方的时候他会告诉你一些有用的信息,比如某个输入或输出是何种数据,何种格式。
从零开始 <wbr>Labview机器视觉-图像采集

初始化以后添加相机的USB snap,依然在IMAQ USB下,连接USB init和USBsnap的session
从零开始 <wbr>Labview机器视觉-图像采集
发现USB snap除session以外还需要image in输入,实际上是需要图像存储的缓存。
使用IMAQ Create函数创建缓存:视觉与运动->VisionUtilities->Image Management

从零开始 <wbr>Labview机器视觉-图像采集

连上IMAQ Create和snap
从零开始 <wbr>Labview机器视觉-图像采集
这时可以看到程序框图的运行箭头裂掉,说明有错误,点开以后可以看到错误,提示IMAQCreate需要输入。这是个会经常用到的功能,帮你找到和修正错误。
从零开始 <wbr>Labview机器视觉-图像采集
需要添加一个常量作为Image in输入,这里有个便捷的方法:右击IMAQCreate的红色输入端,点击创建->常量
从零开始 <wbr>Labview机器视觉-图像采集

自己给常量改名,然后和IMAQ Create连接起来

从零开始 <wbr>Labview机器视觉-图像采集
添加USB Close函数(IMAQ USB下),将USB snap和image以及USBclose连接起来。另外前面添加的数组索引和文本显示控件也连接起来。

从零开始 <wbr>Labview机器视觉-图像采集


现在单击运行窗口应该就可以执行开启USB相机->读取相机名称->显示一帧图像->关闭USB相机的功能。

接着使用while循环函数可间断地显示多帧图像,在结构结构菜单下
从零开始 <wbr>Labview机器视觉-图像采集
框住如下部分

从零开始 <wbr>Labview机器视觉-图像采集
在框内空白处添加延时函数

从零开始 <wbr>Labview机器视觉-图像采集
右击延时函数左侧输入端,创建一个常量,改成一个时间,单位毫秒。同时连上TF和小红圈,这个是点击取消按钮则停止循环的意思。

从零开始 <wbr>Labview机器视觉-图像采集

现在单击运行箭头即可重复拍摄图像,点击停止按钮中止。
下面添加一个Image dispose函数(与ImageCreate同路径),用于释放图像缓存,放在循环框右侧,然后连上USB snap和Image dispose。
从零开始 <wbr>Labview机器视觉-图像采集

在 对话框与用户界面 菜单下添加 简易错误处理器 与 合并错误 两个函数,然后将相关的errorin/out连接起来。
从零开始 <wbr>Labview机器视觉-图像采集
最后令USB Snap有错误输出时,也中止循环。
由于errorout是一个簇,需要从簇中提取单个status,因此需要添加一个簇解绑函数(在簇类与变体菜单下),再添加一个或函数(布尔菜单下)。将取消按钮和错误簇中解绑的status输入至或函数,或函数 输出与 循环停止 连接起来,“边干边学机器视觉第三章”中的USB相机采集例程就完成了。

从零开始 <wbr>Labview机器视觉-图像采集





1 0
原创粉丝点击