基于LabVIEW的图像工程实验
(四)几何特征测量
从图像中分割出目标并之后,可进一步对它进行几何特征测量和分析,在此基础上可以识别物体,也可以对物体进行分类,或对物体是否符合标准进行判别以实现质量监控。图像的几何特征尽管比较直观和简单,但在许多图像分析问题中起着十分重要的作用,可以用来完成分类、检验、定位、轨迹跟踪等任务。下面介绍如何确定目标几何特征量中位置和方向的方法。
图像中的目标通常不是一个点,因此用物体的面积的中心点作为物体的位置。如 图10 所示,若图像中的目标队赢得像素位置坐标为( i=0,1,?,n-1;j=0,1,?m-1),这可用下式计算目标的位置坐标: x?1mnn?1m?1??xi?0j?0i,y?1mnn?1m?1??i?0j?0yi??(3)
y
(xi,yi)
x
图10 用物体的面积的中心点作为物体的位置
确定目标的方向有一定的难度。如果目标是细长的,则通常可以把较长方向上的最小二阶矩轴(最小惯量轴在二维平面上的等效轴)的方向定为目标的方向。也就是说,要找到一条直线,使下式定义的E值最小:
E?2??rf?x,y? dxdy??(4)
式中,r是点(x,y)到直线的垂直距离。
二、基于LabVIEW的图像工程实现
图像工程的大部分内容都是借助于计算来实现的,借助美国国家仪器公司提供的NI景象处理模块(NI Vision Development Module),可以基于LabVIEW软件平台来实现图像工程中的大部分内容。基于LabVIEW的图像工程能够充分利用G语言编程简单、功能完善、应用灵活等突出特点,使得图像工程任务的实现变得更加简单。下面将有重点的介绍NI景象处理模块中的内容:
如 图11 所示,在LabVIEW控制模板(Control)的景象子模板(Vision)中包含IMAQ Image.ctl、Image Display和Image Display(Classic)节点,以及IMAQ Vision controls和Machine Vision controls子模板。
IMAQ Vision controls Machine Vision controls IMAQ Image.ctl Image Display Image Display(Classic) 图11 控制模板(Control)中的景象子模板(Vision)
6
基于LabVIEW的图像工程实验
它们的功能如下表所式:
表1
名称及图标 功能 IMAQ Image.ctl 描述图像的数据类型 在前面板中显示图像(“3D”风格),并可以利用其中提供的ROI(Regions of interest)工 Image Display* 具来选定感兴趣的区域(ROI) 在前面板中显示图像(“经典”风格),并可以利用其中提供的ROI(Regions of interest) 工具来选定感兴趣的区域(ROI) Image Display(Classic)* 设置IMAQ景象(IMAQ Vision)的属性 IMAQ Vision controls Machine Vision controls 设置Machine景象(Machine Vision)的属性 注:表中打“*”号的为重点内容
如 图12 所示,在LabVIEW功能模板(Function)的景象子模板(Vision)中包含Image Acquisition、Vision Utilities、Image Processing和Machine Vision子模板。
图12 功能模板(Function)中的景象子模板(Vision)
它们的功能如下表所式:
表2
子模板名称及图标 功能 Image Processing Machine Vision Image Acquisition Vision Utilities Image Acquisition 设置图像采集系统(IMAQ System),并将图像采集到计算机中 Vision Utilities 创建并操纵IMAQ景象中的图像 Image Processing 滤波、处理和分析IMAQ景象中的图像 Machine Vision
执行普通的Machine景象检查任务 7
基于LabVIEW的图像工程实验
1. Image Acquisition子模板
在Image Acquisition子模板中包含如 表3 所示的几个重要节点:
表3
节点名称及图标 功能 IMAQ Init* 载入一个NI-IMAQ配置,并设置图像采集设备(IMAQ Device) IMAQ Snap* 从图像采集设备中截取一幅图像 IMAQ Grab Setup* 为图像采集设备设置一个图像高速截取循环 IMAQ Grab Acquire* 从图像高速截取循环中高速地截取图像 IMAQ Sequence 从图像采集设备中一次性截取多幅图像 IMAQ Close* ?? 释放图像采集设备 ?? 注:表中打“*”号的为重点内容
表4
2. Vision Utilities子模板
在Vision Utilities子模板中包含如 表4 所示的几个重要节点:
子模板名称及图标 功能 创建和销毁图像,设置和读取图像的属性,以及将一幅图像复制到另一幅图像上 节点名称及图标 功能 Image Management IMAQ Create* 创建一幅空图像 IMAQ Dispose* ?? 销毁一幅图像,并释放其所占用的内存空间 ?? 读取,写入,以及找回图像的文件信息 节点名称及图标 Files IMAQ ReadFile*
8
从指定图像文件中读入一幅图像 功能 基于LabVIEW的图像工程实验
IMAQ WriteFile* 将一幅图像写入到指定文件中 IMAQ GetFileInfo ?? 获取一幅图像文件的内容信息 ?? Image Manipulation 调整图像的大小,提取图像中的某一部分,旋转图像以及展开图像等 将轮廓、文字和位图覆盖到一幅图像上,而不改变原图像的内容 节点名称及图标 功能 IMAQ Overlay Points 将一个点覆盖到图像上 Overlay IMAQ Overlay Line 将一条线覆盖到图像上 IMAQ Overlay Rectangle 将一个矩形轮廓覆盖到图像上 IMAQ Clear Overlay* ?? 清除覆盖在图像上的内容 ?? ?? ?? 注:表中打“*”号的为重点内容
3. Image Processing子模板
表5 子模板名称及图标 功能 处理灰度图像和二值图像,对图像进行灰度变换、灰度分割等操作 节点名称及图标 功能 在Image Processing子模板中包含如 表5 所示的几个重要节点:
IMAQ MathLookup* Processing 直接灰度变换 IMAQ Equalize* 直方图处理 IMAQ BCGLookup
调整图像的亮度,对比度和反衬度 9
基于LabVIEW的图像工程实验
IMAQ Threshold* 单区域灰度分割 IMAQ MultiThreshold 多区域灰度分割 IMAQ Inverse ?? 利用空域滤波来增强图像 灰度反转 ?? 功能 节点名称及图标 IMAQ GetKernel* 读取预定的滤波模板 IMAQ BuildKernel* Filters 创建特定的滤波模板 IMAQ Convolute* 根据输入的滤波模板对图像进行空域滤波 IMAQ LowPass* IMAQ NthOrder* 低通滤波 类中值滤波 ?? 获得灰度图像和二值图像的图像信息 节点名称及图标 ?? 功能 Analysis IMAQ Histograph 获得灰度图像的直方图 获得二值图像中微粒的数目,以及微粒本身的一些几何特 IMAQ Particle Analysis* ?? 征 ?? ?? 注:表中打“*”号的为重点内容
??
4. Machine Vision子模板
在Machine Vision子模板中包含如 表6 所示的几个重要节点:
10