本节介绍如果对图像进行颗粒分析。颗粒分析用于获得统计信息,如面积、数量、位置、以及颗粒存在。 利用这些信息,可以完成许多机器视觉检测任务,例如硅圆片的裂缝检测,或电路板的焊接缺陷检测。如何进行颗粒分析的例子有助于实现网络检测任务的实现包括定位木板的结构化缺陷或检查塑料薄模裂缝。

下图列举了实现颗粒分析的步骤:

 
  NI Vision for LabVIEW 基础(四):进行颗粒分析_颗粒分析

创建二值图像

通过阈值将灰度或彩×××像创建一个二值图像。创建的二值图像将物体从需要检测的背景中分割出来。阈值运算将二值图像中的背景像素设置为0,而将物体像素设置成非零值。物体像素的默认值为1,但可以将物体像素设置成任意值。

可以采用不同的技术来阈值化图像。如果灰度图像中关注的物体融合在连续的密度范围内,可以利用IMAQ Threshold模块手动制定与之范围。如果灰度图像中所有的物体比背景更亮或更暗,可以使用NI Vision中的一种自动阈值技术。使用自动阈值技术的完整步骤如下:

1. 使用IMAQ AutoBThreshold 2 模块选择自动确定优化范围的阈值技术。

2. 将Threshold Data 输出到IMAQ MultiThreshold模块, 或者使用Lookup Table 输出给使用IMAQ UserLookup模块将查找表提供图像。

如果灰度图像包含多个非连续的灰度值的物体,使用IMAQ MultiThreshold 模块。

如果灰度图像包含的物体其灰度值由于光线飘移而变化时,使用IMAQ Local Threshold 模块。

如果需要划分阈值的灰度图像光线条件不一致,例如强照明梯度或阴影导致,使用IMAQ Local Threshold 模块。需要定义一个像素窗口指明那些临近像素参与统计计算。默认的窗口大小为32 × 32.。然而,窗口大小可以近似于需要从背景中分离的最小物体的大小。有时可能需要定义一个本地阈值算法。本地阈值算法可以选择Niblack 或 背景修正算法。关于本地阈值的详细内容,参见NI视觉概念手册,第8章,图像分段

自动阈值技术比基于固定范围的简单阈值提供了更多的灵活性。由于自动阈值技术根据图像直方图确定阈值水平,与固定阈值相比,这种运算受图像整体亮度和对比度变化的影响更小。由于这种技术在两度变化上更稳定,所以被广泛用于自动监测任务。

如果为彩×××像定义阈值,使用IMAQ ColorThreshold 模块。必须为每个色面制定阈值范围,不管是红、绿、蓝,或色调、饱和度、流明。来自彩色阈值的二值图像结果是一个8-bit的二值图像。

改善二值图像

在阈值图像之后,可能需要使用二值形态函数来改善结果二值图像。可以使用基本的二值形态函数或高级二值形态函数来去除不希望的颗粒,分割连接的颗粒,或改善颗粒的形状。基本形态函数以单个像素为单位处理整个图像。高级形态函数是基于基本形态运算建立的,以一批像素为单位,而不是以单个像素为单位。形态学函数中那些是基本的,那些是高级的列表,参见NI 视觉概念手册,第9章,二值形态学

高级形态函数要求制定所使用的连通性。连通性告诉NI Vision如何判定两个邻接的像素是否属于同一个颗粒。在需要NI Vision研究一些像素是否是同一颗粒的一部分时,仅当像素是边沿接触时使用connectivity-4。当要求NI Vision 研究一些像素是否是同一颗粒的一部分时,即便像素仅仅是在角上邻接时,使用 connectivity-8 。关于连通性的更多信息,参见NI 视觉概念手册,第9章,二值形态学

说明 整个应用程序中,要使用同样的连通性。

去掉不希望的颗粒

IMAQ RejectBorder 模块用于去掉接触图像边沿的颗粒。当觉得接触到图像边沿颗粒的信息不完整的时候,可以去掉这些颗粒。

IMAQ RemoveParticle 模块用于去掉不关心的大、小颗粒。还可以使用IMAQ Morphology 模块中的Erode, Open, 和POpen 函数去除小颗粒。与IMAQ RemoveParticle 模块不同,这三个函数改变剩下的颗粒的大小和形状。

IMAQ Morphology 的hit-miss函数用于定位像素的颗粒配置,颗粒配置是利用一个结构化元素定义的。根据结构化元素的配置,hit-miss函数可以定位到单个孤立的像素, 交叉形或长条形,沿着颗粒边缘的右角形,以及其它用户定义的形状。有关结构化元素的详细内容,参见NI Vision概念手册,第9章,二值几何

如果对需要保留或去除的颗粒的形状特征足够了解,可以使用IMAQ Particle Filter 2 模块来过滤掉不感兴趣的颗粒。

分割接触的颗粒

使用分界线变换和二值几何可以将图像中的接触颗粒分割开。

使用分界线变换

IMAQ Danielsson 模块用于奖二值图像变换成一个灰度距离图,其中每个颗粒像素被赋给一个灰度级值。等于它到颗粒边缘的最短欧几里得距离。将IMAQ Watershed Transform 模块应用于这个距离图就可以找到区域分割线。使用IMAQ Mask 模块把分界线重叠在原始图像上。

有关使用分界线变换的详细内容,参见NI Vision概念手册,第8章,图像分割

使用二值几何

可以使用IMAQ Separation 模块或者使用IMAQ Morphology 模块的erosion 或 open 函数来分割接触的物体。IMAQ Separation模块是一个高级程序它能分割颗粒而不改变其形状。而erosion 和 open 运算则改变所有颗粒的形状。

说明 侵蚀、分界线变换和开放 运算(erosion, watershed transform, or open)相比,IMAQ Separation是一种耗时的运算。如果运算速度是应用程序中的一个考量,可以考虑其他某种方法而不使用分割运算。

改进颗粒形状

IMAQ FillHole 模块用于填补颗粒中的空洞。IMAQ Morphology 模块用于对颗粒进行一系列运算。可以使用Open, Close, POpen, PClose, 和 AutoM 运算来平滑颗粒的边缘。Open 和POpen 通过去掉细小的峡缝来平滑颗粒的边缘,而Close是加宽峡缝。Close 和 PClose 用于填补颗粒中的小孔。AutoM 去掉峡缝并填孔。关于这些运算的详细内容,参见NI Vision概念手册,第9章,二值几何

进行颗粒测量

在生成了二值图像并进行改进之后,就可能对颗粒进行测量。NI Vision 可以返回非校准或校准的真实单位像素测量值。通过这些测量值,可以确定颗粒的位置和它们的形状特征。下面的模块用于颗粒测量:

  1. IMAQ Particle Analysis Report—该模块返回图像中的颗粒数,和一个报告数据包括11个最常用的测量值,包括颗粒面积,边界矩形,质量中心等。
  2. IMAQ Particle Analysis—该模块返回最多80个可选择的颗粒测量值。 IMAQ Particle Analysis 模块测量值的列表,参见NI Vision概念手册,第9章,颗粒测量。