Otsu 方法是应用最广泛的图像分割法之一,该方法也叫最大类间方法阈值分割法,选择分割阈值的标准是图像的类间方差达到最大或者类内方差最小。Otsu 阈值分割法可以从单阈值扩展到多级阈值分割,多阈值分割图像时采用多个不同的阈值将图像分割为多个不同的区域或目标。将智能算法应用于多阈值的寻找,能大大加快算法的速度。算法思想:

假设一幅图像有L个灰度级[1,2,…,L]。灰度级为i的像素点的个数为ni,那么总的像素点个数就应该为N=n1+n2+…+nL。为了讨论方便,我们使用归一化的灰度级直方图并且视为这幅图像的概率分布:

【图像分割】基于灰狼算法优化Otsu图像实现多阈值分割matlab源码_Otsu 方法

    现在假设我们通过一个灰度级为k的门限将这些像素点划分为两类:C0和C1(背景和目标,或者反之亦然);C0表示灰度级为[1,…,k]的像素点,C1表示灰度级为[k+1,…,L]的像素点。那么,每一类出现的概率以及各类的平均灰度级分别由下面的式子给出:

【图像分割】基于灰狼算法优化Otsu图像实现多阈值分割matlab源码_Otsu 方法_02

以及

【图像分割】基于灰狼算法优化Otsu图像实现多阈值分割matlab源码_Otsu 方法_03

其中,

【图像分割】基于灰狼算法优化Otsu图像实现多阈值分割matlab源码_Otsu 方法_04

分别为灰度级从1到k的累积出现概率和平均灰度级(一阶累积矩),而

【图像分割】基于灰狼算法优化Otsu图像实现多阈值分割matlab源码_Otsu 方法_05

是整幅图像的平均灰度级。我们可以很容易验证,对于任意选定的k,都有:

【图像分割】基于灰狼算法优化Otsu图像实现多阈值分割matlab源码_Otsu 方法_06

这两类的类内方差由下面的公式给出:

【图像分割】基于灰狼算法优化Otsu图像实现多阈值分割matlab源码_Otsu 方法_07

这需要二阶累积矩(second-order cumulative moment,统计学概念)。

    为了评价(灰度级k)这个门限“好”的程度,我们需要引入判别式分析中使用的判别式标准来测量(类的分离性测量):

【图像分割】基于灰狼算法优化Otsu图像实现多阈值分割matlab源码_Otsu 方法_08

其中:

【图像分割】基于灰狼算法优化Otsu图像实现多阈值分割matlab源码_Otsu 方法_09

又根据式(9),可以得出:

【图像分割】基于灰狼算法优化Otsu图像实现多阈值分割matlab源码_Otsu 方法_10

这三个式子分别是类内方差、类间方差和灰度级的总方差。然后,我们的问题就简化为一个优化问题,即寻找一个门限k使(12)式中给出的一个目标函数取最大值。

    这个观点是出于这样一个猜想,一个好的阈值将会把灰度级分为两类,那么反过来说,就是如果一个门限能够在灰度级上将图像分割为最好的两类的话,那么这个门限就是最好的门限。

    上面给出的判别式标准是分别求取λ、κ和η的最大值。然而,对于κ而言,它又等于另外一个,比如κ=λ+1;而对于λ而言,又有η=λ/(λ+1),因为始终存在下面的基本关系:

【图像分割】基于灰狼算法优化Otsu图像实现多阈值分割matlab源码_Otsu 方法_11

  【图像分割】基于灰狼算法优化Otsu图像实现多阈值分割matlab源码_Otsu 方法_12

【图像分割】基于灰狼算法优化Otsu图像实现多阈值分割matlab源码_Otsu 方法_13

3.算法结果:
以lena图像为例:

单阈值结果:

3阈值结果:

4阈值结果:
往期回顾>>>>>>