图像阈值分割具有直观和易于实现的特点,在图像分割应用中占有重要地位。许多情况下,图像 f ( x , y ) f(x,y) f(x,y)由暗对象和亮对象这两类具有不同灰度级的区域组成,如报纸和书本。
这种图像的亮暗部分可以在直方图中清楚的分辨出,故可选择一个阈值用于将亮暗峰区分开
阈值分割可以看做一种函数操作 T = T [ x , y , p ( x , y ) , f ( x , y ) ] T=T[x,y,p(x,y),f(x,y)] T=T[x,y,p(x,y),f(x,y)]其中 x x x、 y y y表示像素的横纵坐标, p ( x , y ) p(x,y) p(x,y)表示像素的局部特性, f ( x , y ) f(x,y) f(x,y)表示像素灰度值
经阈值化处理后的图像定义为 g ( x , y ) = { 1 , f ( x , y ) > T 0 , f ( x , y ) < T g(x,y)=\begin{cases} 1, & f(x,y)>T \\ 0, & f(x,y)
是最简单的阈值处理技术,适用于目标和背景的灰度差较大、直方图有明显谷底的情况,能够在高度可控的环境中得到成功应用。
实现方式也很简单,只需对图像像素逐个进行扫描,按其灰度值大于或小于设定的阈值 T T T。将像素响应地标记为对象或背景即可实现图像分割
g ( x , y ) = { 1 , f ( x , y ) > T 0 , f ( x , y ) < T g(x,y)=\begin{cases} 1, & f(x,y)>T \\ 0, & f(x,y)
单一全局阈值的阈值确定是以直方图视觉检测为基础通过试验确定的,需要人为的参与
自动计算阈值 T T T的算法
关于预设的 T T T值,若图像背景和对象的面积接近, T T T初始值就应选用整个图像的平均灰度值;若对象与背景面积相差较大,则 T T T的初始值应选用灰度值的中间值之类的值。
常用于对象和背景的灰度级出现部分重叠或需要检测多个不同目标的场景
g ( x , y ) = { 2 , T 2 < f ( x , y ) 1 , T 1 < f ( x , y ) < T 2 0 , f ( x , y ) < T 1 g(x,y)=\begin{cases} 2, & T_2
阈值化处理提取边界
中间灰度级(或称灰度级突变处)常出现在对象和背景之间的边界上,因此在进行对象分割时,可以先提取出对象的边界。
方法是把中间灰度级变换为1,其他灰度级变换为0
g ( x , y ) = { 1 , T 1 < f ( x , y ) < T 2 0 , o t h e r w i s e g(x,y)=\begin{cases} 1, & T_1
对于不均匀照射、亮度不均匀的图像,单一全局阈值无法有效进行分割。一种有效的改进方法就是将图像进一步细分为子图像,然后对子图像使用不同的阈值进行分割。这类算法的时间复杂度和空间复杂度较大,但有较强的抗噪能力,能获得较好的分割结果
例如下图中单一全局阈值分割和自适应阈值分割的效果对比:
可以看出,相比于单一全局阈值分割,自适应阈值分割虽然也没能完美的分割出对象,但是其基本轮廓已经出现,若要再加强分割效果,可以对图像进一步细分,例如分为32×32个子图像,或者应用其他图像分割算法进一步改善效果。
任何一种分割方法都有其局限性,实际的算法只能根据实际情况选择适当的方法和阈值