石鑫华视觉 手机微信QQ:13450001061 / 18038383457

图像编程

NI视觉助手之局部阈值Local Thresholding

文章来源:石鑫华视觉网时间:2022-09-05 12:24:47 点击:293

NI视觉助手之局部阈值Local Thresholding

局部阈值,也叫做局部自适应阈值,就像全局灰度阈值,他们都创建一个二值图像以分割一幅灰度图像为粒子区域和背景区域 。与使用单一阈值的全局灰度阈值不同,局部阈值分类像素是基于其邻域像素的强度统计。

当一幅图像的照明表现得不是很均匀时,可以使用局部阈值从背景区域分出离感兴趣的目标。

下面的图像显示了一幅不均匀的图像使用全局阈值和局部阈值时的效果。图55中A为原始的检测图像,是一幅LCD数字。B显示的是全局阈值处理后的图像。注意其中底部和右下角有许多非数字的像素被错误的判断为粒子了。C显示了局部阈值分割图像片段。这时只有那些像素属于液晶数字的才被判断为粒子。

image.png

图55 全局阈值与局部阈值比较

局部阈值算法计算局部像素强度统计信息—例如范围、方差、表面拟合参数或它们的逻辑组合—对于检测图像中的每个像素。计算结果是考虑中的像素的局部阈值。该算法比较原始像素的强度值与局部阈值从而确定该像素是属于粒子还是属于背景。

一个用户自定义的窗口指定哪些邻域像素被考虑到统计计算中。默认的窗口尺寸是32×32像素。然后,窗口的大小应该约等于用户想从背景分离的最小粒子尺寸。下面的图显示了一个简单简化的局部阈值窗口:

image.png

图56 局部阈值窗口

其中①为图像,②为局部阈值窗口,③为考虑中的像素。需要注意的是在窗口中所有像素的强度,包括在考虑中的像素,都是用于计算局部阈值的。

一个典型的局部阈值需要大量的计算时间。同样,一个典型的局部阈值函数完成时间通常是随着窗口大小变化的。这种不确定性应该避免应用于实时系统中。NI视觉局部阈值函数使用一个完全优化、有效的算法从而实现计算速度不依赖于窗口大小。这大大减少了计算成本,使得使用该函数在实时分割系统里成为可能。

下面我们来了解一下NI视觉局部阈值的一些算法。在这些算法中,无论使用什么算法,用户都需要首先指定是在白色背景上查找黑色目标还是在黑色背景上查找白色目标。

Niblack Algorithm尼布拉克算法

    Niblack算法已经被实验证实是11个局部自适应阈值算法中最好的一个,是基于目标导向评价的(来自OCR和地图图像分割应用中)。该算法可以有效提高许多图像阈值应用程序的质量,如显示检测和OCR字符识别等。

Niblack算法对窗口的大小是比较敏感的,并且会生成噪声分割结果在图像的大的、不均匀的背景区域中。为了解决这个问题,NI视觉局部阈值函数计算偏差系数,该算法用于正确的分类像素。

在Niblack算法中,像素点(i,j)的局部阈值T(i,j)的计算公式如下:

image.png

其中m(i,j)是局部样品的平均值,k是偏差系数,image.png是方差。

每个图像上的像素I(i,j)是归类为粒子还是背景像素是基于以下公式的:

如果I(i,j)>T(i,j),I(i,j)=粒子,否则I(i,j)=背景

设置系数k为0可以增加Niblack算法的速度。下面来看一下演示例子:

image.png

图57 Niblack局部阈值法-窗口=21×21

image.png

图58 Niblack局部阈值法-窗口=50×50

图57、图58演示了窗口大小不一样时的阈值效果。从图57中看到,当窗口比较小时,找到了大师的噪点,而许多白色特征却没有找到。当窗口比较大时,则可以找到更多的目标,噪声也比较少了。

image.png

图59 Niblack局部阈值法-窗口=50×50-寻找黑色目标

image.png

图60 Niblack局部阈值法-窗口=21×21-寻找黑色目标

从图59、图60中查找黑色目标时,也是同样的效果,窗口越小时,对均匀性越敏感,光强略有变化,就会被判断成目标或噪声。

从上面的图中还可以看到,局部阈值通常只会对窗口大小相等的目标进行查找。如查找白色目标时,边缘最外面的大的白色目标,仅仅只找了一个窗口大小的跑道型特征圈。只有当窗口大于需要检查的目标特征时,目标才会被发现:

image.png

图61 Niblack局部阈值法-窗口=160×160-寻找白色目标

这种特性给我们阈值处理时提供了一种思路,就是可以将窗口尺寸设置成目标特征大小,以查找需要的特征,从而避免不需要的特征出现。

image.png

图62 Niblack局部阈值法-窗口尺寸为80×80

图62演示了将窗口尺寸设置为80×80,这时LCD的数字、符号基本全部找到。

image.png

图63 Niblack局部阈值法-偏差系数为0

image.png

图64 Niblack局部阈值法-偏差系数为0.5

图63、图64显示了将偏差系数调整为0以及0.5时的图像阈值差别。从中看到,偏差系数越小,找到的特征越多,对光强越敏感。而偏差系数较大时,则对光强表现比较迟钝。

Background Correction Algorithm背景校正算法

背景校正算法结合了图像分割中局部和全局阈值的方法。下图展示了背景校正算法:

image.png

图65 局部阈值校正算法

在过程背景校正图像中,使用的阈值方法是前面讲的组内方差自动阈值法。可以参考前面内容。

在背景校正算法中,背景校正图像B(i,j)使用如下公式计算:

image.png

其中image.png是像素点(i,j)的局部均值

下面来看一背景校正的实例。

image.png

图66 背景校正局部阈值-窗口默认32×32-查找白色目标

image.png

图67 背景校正局部阈值-窗口默认32×32-查找黑色目标

image.png

图68背景校正局部阈值-窗口128×128-查找白色目标

图68中使用窗口为128×128的窗口进行背景校正时,LCD显示屏中的信号符号最大的一格上还有一个白色的特征点未找到,这是因为窗口的高方向不够。其实可以将窗口改变成宽可以小一点,高大一点就可以把那个小点也包含到目标中了。如下图所示:

image.png

图69 背景校正局部阈值-窗口88×142-查找白色目标

将窗口改变了88×142,这时LCD中的所有白色特征都找到了且噪声较小。

首页
84162741QQ
联系