图像分割最大类间方差法(otsu)图像分割

Posted MatlabQQ1575304183

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像分割最大类间方差法(otsu)图像分割相关的知识,希望对你有一定的参考价值。

   由Otsu(大津展之)于1978年提出的最大类间方差法,是引起较多关注的一种阈值选取方法。它是在判决分析或最小二乘原理的基础上推导出来的。

 

参考文献:

[1] Otsu N. A threshold selection method from gray-level histogram. IEEE Trans,1979;SMC-9;62-66 下载地址

 

算法思想:

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

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

以及

其中,

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

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

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

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

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

其中:

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

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

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

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

  


clear
close all
clc

I=imread('rice.png');    
[m,n]=size(I);   
N=m*n;   
L=256;   

for i=1:L  
    count(i)=length(find(I==(i-1)));  
    f(i)=count(i)/(N);  %每个灰度对应的概率,i=1,对应灰度值为0(i-1)
end  

for i=1:L   
    if count(i)~=0   
        st=i-1;   %开始的灰度值
        break;   
    end   
end   
for i=L:-1:1   
    if count(i)~=0   
        nd=i-1;   %结束的灰度值
        break;   
    end   
end   

p=st;   q=nd-st+1;   
u=0;   
for i=1:q   
    u=u+f(p+i)*(p+i-1);  %u是像素的平均值    
    ua(i)=u;           %ua(i)是前i+p个像素的平均灰度值  (前p个无取值) 
end;   

for i=1:q   
    w(i)=sum(f(1+p:i+p));  %w(i)是前i个像素的累加概率,对应公式中P0 
end;   

w=w+eps;  
   %对照sigmaB的公式写出目标函数。实际是遍历所有值
d=(w./(1-w)).*(ua./w-u).^2;
[y,tp]=max(d);  %可以取出数组的最大值及取最大值的点   
th=tp+p;  


figure;imshow(im2bw(I,th/255),[]);  title('最大类间方差');
%% matlab自带函数
figure;imshow(im2bw(I,graythresh(I)),[]);  title('matlab自带');

完整代码或者仿真咨询添加QQ1575304183

以上是关于图像分割最大类间方差法(otsu)图像分割的主要内容,如果未能解决你的问题,请参考以下文章

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

大津阈值法(OTSU)功能实现

图像分割基于类间方差阈值图像分割与腐蚀膨胀matlab源码

大津法

图像分割基于类间方差阈值图像分割与腐蚀膨胀matlab源码含GUI

图像分割基于类间方差阈值图像分割与腐蚀膨胀matlab源码含GUI