直方图举例

下图显示了浅灰色背景上的10个深色圆环。下面将通过举例Correlation对象或Blob对象检测到这些工件时情况,来说明直方图的使用方法。

10个使用Corr01对象的圆环的图像举例

Correlation对象使用的直方图

下图展示了为Corr01对象生成的[Histogram]对话框。图中的图表显示了像素在各种照明级别上的情况良好,因此我们能看到图像如何分布的。并且可以看出浅色像素多余深色像素(因为 8.2 直方图举例 中的图像中,灰色背景的面积比深色圆环大很多)。

Correlation对象“Corr01”的直方图举例

Blob对象使用的直方图

下图显示了在Blob对象中的直方图,与Correlation对象的直方图有些许差异。注意图表中有2条垂直线,底部附有各自的值,分别是ThresholdLow和ThresholdHigh。这些是Blob对象的属性,用于指定包含了被检测出二进制部分的照明等级,以及作为背景部分的照明等级。

Blob对象“Blob01”的直方图举例(亮底暗图)

ThresholdLow和ThresholdHigh滑动条之间的区域代表我们想要定义为深色还是白色像素的照明等级的像素组合,我们可以利用ThresholdColor属性对此加以设置。Polarity属性决定了我们是在浅色背景上查找深色对象,还是在深色背景上查找浅色对象。
调整ThresholdLow和ThresholdHigh属性
再次查看上图。注意,ThresholdLow的属性设置为0,而ThresholdHigh的属性设置为128,它们是这些Blob对象属性的默认值。当我们首次从Rings图像上运行Blob对象时(NumberToFind设为10),我们会得到下图所示的结果。注意,许多被发现的二进制对象的Extrema没有围绕在圆环的外部,某些情况下,零件的一部分作为一个二进制对象或1个零件作为2个二进制对象被发现(参见下图中的箭头,这些箭头指出了问题区域)。这是由于尚未根据直方图的结果调整ThresholdLow和ThresholdHigh属性。


阈值设置不佳的10个圆环的图像

如果我们使用[Histogram]对话框来检查圆环图像的直方图,我们会看到从32灰度级开始的很大一片灰色分布。然后另一个大的高峰从170左右开始。由于圆环图像中最大的灰色分布是浅色背景,则很容易看到170以上的像素分布在背景上。同样,由于直方图中的另一个高峰是从大约32开始到170结束,这显示了图像的深色部分的分布,这就是那些圆环(我们感兴趣的部分)。可以调整ThresholdLow和ThresholdHigh,以便我们找到的每个二进制对象的方框正好环绕在圆环的外缘。通过点击[Histogram]对话框中的ThresholdLow和ThresholdHigh条,并将它们拖到下图所示的位置来完成这一操作。


阈值设置较好的圆环图像柱形图

在用了新的ThresholdLow和ThresholdHigh设置并且运行了Blob对象之后来查看圆环图像,我们可以发现,返回的结果更加符合我们的预期。现在发现,对于每个二进制对象,每个圆环都具有正确的极值。


阈值设置改进以后的10个圆环的图像

此外,ThresholdAuto复选框位于对话窗口的右下角。勾选该复选框,可以设定从搜索窗口认为恰当的ThresholdLow和ThresholdHigh值。在上图的情况下,ThresholdLow的属性值设为0,而ThresholdHigh的属性值设为164。ThresholdAuto复选框的状态与ThresholdAuto属性值关联。如果ThresholdAuto属性值为“True”,每次执行视觉序列时自动计算阈值。这样,即使在照明系统改变时,二进制对象检测功能也能正常工作。

要点


如果ThresholdAuto设为“True”,即使在未能捕获目标工件等图像均匀(全部黑色或白色)时,设定值会降至可以检测二进制对象的阈值。(至少能检测一个二进制对象)