Matlab图像处理-迭代式阈值选择法

  基本思想

迭代式阈值选择法的基本思想是:开始时,选择一个阈值作为初始估计值,然后按某种策略不断地改进这一估计值,直到满足给定的准则为止。在迭代过程中,关键之处在于选择什么样的阈值改进策略。好的阈值改进策略应该具备两个特征:一是能够快速收敛,二是在每一个迭代过程中,新产生的阈值优于上一次的阈值。

示例代码

A = imread('rice.png');
figure(1);imshow(A);
T = mean2(A);%取均值作为初始阈值
done = false ;%定义跳出循环的理由
i= 0;
    %while循环进行迭代
while ~done
    r1 = find(A<=T);%小于阈值的部分
    r2 = find(A>T);%大于阈值的部分
    Tnew = (mean(A(r1)) + mean(A(r2))) / 2;%计算分割后两部分的阈值均值的均值
    done = abs(Tnew - T)<1;%判断迭代是否收敛
    T= Tnew;%如不收敛,则将分割后的均值的均值作为新的阈值进行循环计算
    i = i+1;
end
A(r1) = 0;%将小于阈值的部分赋值为0
A(r2) = 1:%将大于阈值的部分赋值为1这两步是将图像转换成二值图像
figure,imshow(A,[]);

效果图片

Matlab图像处理-迭代式阈值选择法_第1张图片

你可能感兴趣的:(Matlab,算法,机器学习,人工智能)