1. 阈值分割概念

图像阈值分割具有直观和易于实现的特点,在图像分割应用中占有重要地位。许多情况下,图像 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 \end{cases} g(x,y)={1,0,f(x,y)>Tf(x,y)<T灰度标记为1的像素对应于关注的对象,标记为0的像素对应于背景,且有:

  1. T T T仅取决于 f ( x , y ) f(x,y) f(x,y),阈值是全局的
  2. T T T取决于 f ( x , y ) f(x,y) f(x,y) p ( x , y ) p(x,y) p(x,y),阈值就是局部的
  3. T T T取决于坐标 ( x , y ) (x,y) (x,y),阈值是自适应的

2. 基本的阈值分割

2.1. 单一全局阈值

是最简单的阈值处理技术,适用于目标和背景的灰度差较大、直方图有明显谷底的情况,能够在高度可控的环境中得到成功应用。

实现方式也很简单,只需对图像像素逐个进行扫描,按其灰度值大于或小于设定的阈值 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 \end{cases} g(x,y)={1,0,f(x,y)>Tf(x,y)<T

在这里插入图片描述
单一全局阈值的阈值确定是以直方图视觉检测为基础通过试验确定的,需要人为的参与

自动计算阈值 T T T的算法

  1. 预设一个阈值 T T T值,定义迭代截止参数 Δ T \Delta T ΔT
  2. T T T进行图像分割,得到两组区域像素集 G 1 = { f ( x , y )   ∣   f ( x , y ) > T } G_1=\{f(x,y)\ |\ f(x,y)>T \} G1={f(x,y)  f(x,y)>T} G 2 = { f ( x , y )   ∣   f ( x , y ) < T } G_2=\{f(x,y)\ |\ f(x,y)<T \} G2={f(x,y)  f(x,y)<T}
  3. 分别计算 G 1 G_1 G1 G 2 G_2 G2中所有像素的平均灰度值 u 1 u_1 u1 u 2 u_2 u2
  4. 计算新阈值 T = u 1 + u 2 2 T=\frac{u_1+u_2}{2} T=2u1+u2
  5. 重复步骤2~4,直到 T T T值之差小于 Δ T \Delta T ΔT

关于预设的 T T T值,若图像背景和对象的面积接近, T T T初始值就应选用整个图像的平均灰度值;若对象与背景面积相差较大,则 T T T的初始值应选用灰度值的中间值之类的值。

2.2. 双全局阈值

常用于对象和背景的灰度级出现部分重叠或需要检测多个不同目标的场景

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<f(x,y) \\ 1, & T_1<f(x,y)<T_2 \\ 0, & f(x,y)<T_1 \\ \end{cases} g(x,y)=2,1,0,T2<f(x,y)T1<f(x,y)<T2f(x,y)<T1

阈值化处理提取边界
中间灰度级(或称灰度级突变处)常出现在对象和背景之间的边界上,因此在进行对象分割时,可以先提取出对象的边界。

方法是把中间灰度级变换为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<f(x,y)<T_2 \\ 0, & otherwise\\ \end{cases} g(x,y)={1,0,T1<f(x,y)<T2otherwise

2.3. 基本自适应阈值

对于不均匀照射、亮度不均匀的图像,单一全局阈值无法有效进行分割。一种有效的改进方法就是将图像进一步细分为子图像,然后对子图像使用不同的阈值进行分割。这类算法的时间复杂度和空间复杂度较大,但有较强的抗噪能力,能获得较好的分割结果

例如下图中单一全局阈值分割和自适应阈值分割的效果对比:
在这里插入图片描述可以看出,相比于单一全局阈值分割,自适应阈值分割虽然也没能完美的分割出对象,但是其基本轮廓已经出现,若要再加强分割效果,可以对图像进一步细分,例如分为32×32个子图像,或者应用其他图像分割算法进一步改善效果。

任何一种分割方法都有其局限性,实际的算法只能根据实际情况选择适当的方法和阈值

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐