基于LabVIEW机器视觉的基础探究
2016-05-30冯思宇赫连东宇王培毅赵泽宇
冯思宇 赫连东宇 王培毅 赵泽宇
摘 要:由于本文针对电子类相关专业在学习基于LabVIEW机器视觉的过程中最基础的图像采集问题提供非常快速的开发方案与技巧,使之在LabVIEW机器视觉基础阶段学习少走弯路,为基础阶段的开发者解决实际问题,在以后学习LabVIEW高级图像采集与处理中有一个良好的基础,大大提升学习效率。
关键词:LabVIEW;機器视觉;图像采集
1 前言
虽然机器视觉理论与应用在国外发展比较成熟,然而大部分系统都是基于Halcon、Visionpro、Opencv等软件的机器视觉,当前国内基于LabVIEW的机器视觉系统研究仍然处于发展阶段。目前,LabVIEW软件在发达国家已经十分普及,例如在美国已经将此软件作为各大学理工科学生的一门必修课程。LabVIEW在国内的发展处于逐渐上升期,其图形化编程语言使编程过程变得简单直观且易于掌握,LabVIEW虚拟仪器技术的应用使实验平台的搭建和操作界面的设置变得非常简单,它可以十分有效地提高工程师的工作效率,缩短科研项目的开发时间,于是本文选择了基于LabVIEW的图像化编程语言开发机器视觉系统。
2 软件安装基础工作
在电脑上安装LabVIEW以后,电脑中是没有机器视觉开发所需要驱动程序与工具库的,需要单独安装。第一,视觉开发工具包(Vision Development Module)通常被称为VDM,它包括一个视觉助手应用软件(Vision Assistant)和一个图像处理VI库(NI Vision)。第二,用于自动检测的视觉生成器(Vision Builder for Automated Inspection),通常被称为VBAI,该程序是一个可以独立运行的程序。编程和操作界面与Vision Assistant相似,但是不可以把程序转换为LabVIEW,只能在其环境下运行。VBAI程序可以在远程目标设备如CVS上运行。第三,视觉获取软件(Vision Acquisition Software),通常被称为VAS,用于捕获图像的一系列驱动程序。一般的视觉开发需要安装VDM与VAS,利用VAS驱动和VDM的图像处理VI库实现图像采集与处理。安装后在图像与运动的函数选板中显示。
3 图像采集
由于成本考虑,在基础学习期间没有必要购买专业的图像采集设备,驱动相机采集图像只能利用笔记本电脑上的简易摄像头进行代替,简易摄像头与专业摄像头在编程思想的上差别比较小,只是使用的LabVIEW的驱动模块上有些差别。
使用IMAQdx Open Camera VI打开相机,查询相机的功能,加载相机配置文件,并创建一个独特的参考相机。使用IMAQdx Session控件指定要打开的相机的名称并该名称为相机引用。IMAQdx Configure Grab VI配置相机并启动抓取采集图像。IMAQ Create VI为图像创建临时内存位置。IMAQdx Grab2 VI获取最新帧图像。
4 图像二值化
在图像的处理中,最简单的就是图像二值化处理,以阀值为界将图像上像素点的灰度值置为0或255,也就是将图像上的像素点变成纯黑或者纯白的像素点。
式中T为指定的阀值,g(x,y)为阀值化后点(x,y)处的像素的灰度值,f(x,y)为阀值化前在点(x,y)处的像素的灰度值,此式是阶跃函数,给出阀值T即可将图像阀值化为黑白的二值图。
将图像转换为数组,使用二值化子VI将数组与二值化阈值进行比较,从而得到纯黑与纯白的图像数组,再将数组转换为图像,从而完成了灰度图像的二值化,二值化程序如图1所示。
5 使用软件自带例子
LabVIEW自带的范例写的很好,开发者可以利用软件自带范例为参照学习,还可以根据范例来改进成自己需要的程序。在LabVIEW界面菜单栏点击“帮助”,在下拉菜单选择“查找范例”,找到“工具包和模块”→ “视觉”,然后根据自己需要打开相应视觉范例程序进行学习。
在搜索界面可以直接搜索英文来查找视觉范例,例如搜索“Grab”,找到“Grab.VI”并打开,可以看到此例子的前面板,在“Camera Name”中选择好电脑的摄像头并运行,“Image”界面就能显示电脑摄像头所采集的图像。打开程序框图,可以对程序框图内的程序进行研究,也可以对程序框图内的程序进行扩展或者修改。此案例就是本文第三部分图像采集所用的经典案例。同样,搜索打开其他的官方案例进行学习。
参考文献
[1]邓小峰.基于机器视觉的零件识别和测量系统研究[D].南京航空航天大学,2014.
[2]雷振山,肖成勇,魏丽,等.LabVIEW高级编程与虚拟仪器工程应用[M].北京:中国铁道出版社,2013.
[3]左昉,胡仁喜,闫聪聪.LabVIEW2013中文版虚拟仪器从入门到精通[M].北京:机械工业出版社,2014.