阈值分割介绍

当人观察景物时,在视觉系统中对景物进行分割的过程是比不可少的,这个过程非常有效,以至于人所看到的并不是复杂的场景,而是一些物体的集合体。该过程用数字图像处理描述,就是把图像分成若干个特定的、具有独特性质的区域,每一个区域代表一个像素的集合,每一个集合又代表一个物体,而完成该过程的技术通常称为图像分割,它是图像处理到图像分析的关键步骤。图像的分割主要有:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法。
本文主要围绕阈值分割技术展开,它是一种基于区域的、简单的通过灰度值信息提取形状的技术,因其实现简单、计算量小、性能稳定而成为图像分割中最基本和应用最广泛的分割技术。往往阈值分割后的输出图像只有两种灰度值:255和0,所以阈值分割处理又常称为图像的二值化处理。阈值分割处理主要是根据灰度值信息提取前景,所以对前景物体与背景有较强对比度的图像的分割特别有用。对对比度很弱的图像进行阈值分割,需要先进行图像的对比度增强,然后再进行阈值处理。
全局阈值分割:灰度图像
全局阈值分割指的是将灰度值大于thresh(阈值)的像素设为白色,小于或者等于thresh的像素设为黑色,或者反过来。阈值分割的核心就是如何选取阈值。
局部阈值分割
局部阈值又称自适应阈值.即不再像全局阈值一样,对整个矩阵只有一个阈值,而是针对输入矩阵的每一个位置的值都有相应的阈值,这些阈值构成了和输入矩阵同等尺寸的矩阵thresh。局部分割的核心思想也是计算阈值矩阵,比较常用的是后面提到的自适应阈值算法(又称移动平均值算法),其核心思想是把每一个像素的邻域的”平均值“作为该位置的阈值。
直方图技术法
直方图技术法就是首先找到这两个峰值,然后取两个峰值之间的波谷位置对应的灰度值,就是所要的阈值。由于灰度值在直方图中的随机波动,两个波峰(局部最大值)和它们之间的波谷都不能很好的确定。一种常用的方式是先对直方图进行高斯平滑处理,逐渐增大高斯滤波器的 标准差,直到能从平滑后的直方图中得到两个唯一的波峰和它们之间唯一的最小值。
熵算法
信息熵(entropy)的概念来源于信息论,假设信源符号u有N种取值,且每一种信源符号出现的概率有N种。图像也可以看作一种信源,假设输入图像为I,normHistI代表归一化的图像灰度直方图,那么对于8位图可以看成由256个灰度符号,且每一个符号出现的概率为normHistI(k)组成的信源,其中<=k<=255.
Ostu阈值算法
在对图像进行阈值分割时,所选取的分割阈值应使情景区域的平均灰度、背景区域的平均灰度与整幅图像的平均灰度之间的差异最大,这种差异用区域的方法来表示。Otsu提出了最大方差法,该算法是在判别分析最小二乘法原理的基础上推导得出的。
自适应阈值
在不均匀照明或者灰度值分布不均的情况下,如果使用全局阈值分割,那么得到的分割效果往往会很不理想。需要针对每一个位置的灰度值设置一个对应的阈值,而该位置阈值的设置也和其邻域有必然的关系。在对图像进行平滑处理时,均指平滑、高斯平滑、中值平滑用不同规则计算出以当前像素为中心的邻域内的灰度“平均值”,所以可以使用平滑处理后的输出结果作为每个像素设置阈值的参考值。在自适应阈值处理中,平滑算子的尺寸决定了分割出来的物体的尺寸,如果滤波器尺寸太小,那么估计出的局部阈值讲不理想。评经验,平滑算子的宽度必须大于被识别物体的宽度,平滑算子的尺寸越大,平滑后的结果越能更好地作为每个像素的阈值的参考。
二值图的逻辑运算
对于阈值处理后的二值图,还可以利用二值图之间的逻辑运算:“与”运算和”或"运算,以便得到想要的结果。Opencv提供的两个函数bitwise_and和bitwise_or 分别实现了两个矩阵之间的与运算和或运算。

猜你喜欢

转载自blog.csdn.net/weixin_42104289/article/details/84072117
今日推荐