6.4 阈值分割
一、基本原理
原始图像——f(x,y)
灰度阈值——T
阈值运算得二值图像——g(x,y)
阈值选择直接影响分割效果,通常可以通过对灰度直方图 的分析来确定它的值。
二、阈值选择
利用灰度直方图求双峰或多峰选择两峰之间的谷底作为阈值
三、人工阈值
人工选择法是通过人眼的观察,应用人对图像的知识,在分析图像直方图的基础上,人工选出合适的阈值。也可以在人工选出阈值后,根据分割效果,不断的交互操作,从而选择出最佳的阈值。
图像直方图
四、自动阈值
1、迭代法
基本思想:开始时选择一个阈值作为初始估计值,然后按某种策略不断地改进这一估计值,直到满足给定的准则为止。在迭代过程中,关键之处在于选择什么样的阈值改进策略,好的阈值的改进策略应该具备两个特征,一是能够快速收敛,二是在每一个迭代过程中,新产生阈值优于上一次的阈值。
(1)? 选择图像灰度的中值作为初始阈值Ti=T0。
(2)? 利用阈值Ti把图像分割成两部分区域, R1和R2,并计算其灰度均值
(3) 计算新的阈值Ti+1
(4) 重复步骤2、3,直到Ti+1和Ti的值差别小于某个给定值
迭代式阈值二值化图像
2、Ostu法
stu方法是使类间方差最大而推导出的一种能自动确定阈值的方法
具有简单,处理速度快的特点
Matlab工具箱提供的graythresh函数求取阈值采用的正是Ostu法
Otsu法二值化图像:
3、分水岭算法
分水岭算法(watershed)是一种借鉴了形态学理论的分割方法,它将一幅图象看成为一个拓扑地形图,其中灰度值被认为是地形高度值。高灰度值对应着山峰,低灰度值处对应着山谷。将水从任一处流下,它会朝地势底的地方流动,直到某一局部低洼处才停下来,这个低洼处被称为吸水盆地,最终所有的水会分聚在不同的吸水盆地, 吸水盆地之间的山脊被称为分水岭,水从分水岭流下时,它朝不同的吸水盆地流去的可能性是相等的。
将这种想法应用于图像分割,就是要在灰度图像中找出不同的吸水盆地和分水岭,由这些不同的吸引盆地和分水岭组成的区域即为我们要分割的目标。
图像对应的拓扑表面图
分水岭阈值选择算法可以看成是一种自适应的多阈值分割算法
分水岭形成示意图
MATLAB函数:
L=watershed(f)
不准确标记分水岭算法导致过分割
4、改进的分水岭算法
准确标记的分水岭算法分割过程