迭代阈值分割算法(处理图像)

**1.算法原理简述**
       迭代法求取阈值进行图像分割:它的主要思想是:图像分割后的两部分A和B的均值和基本保持稳定。也就是说,随着迭代的进行,取 [mean(A)+mean(B)]/2 最终的收敛值作为分割阈值。其具体方法如下:
(1)选取一个初始阈值T;
(2)利用阈值T把给定图像分割成两组图像,记为R1和R2;
(3)计算R1和R2均值μ1和μ2;
(4)选择新的阈值T,且T=(μ1+μ2)/2;
(5)重复第(2)至(4)布,直到连续两次T的差值小于一个预设值为止。
**2.算法设计流程图(或难点分析)**
 


**3.算法设计代码与注释(迭代阈值分割算法)**

%读入图像,并进行灰度转换(迭代阈值分割算法)
A=imread('figerprint.jpg');
B=rgb2gray(A);
%初始化阈值
T=0.5*(double(min(B(:)))+double(max(B(:))));
d=false;
%通过迭代求最佳阈值
while~d
g=B>=T;
Tn=0.5*(mean(B(g))+mean(B(~g)));
d=abs(T-Tn)<0.5;
T=Tn;
end
% 根据最佳阈值进行图像分割
level=Tn/255;
BW=im2bw(B,level);
% 显示分割结果
subplot(121),imshow(A);title('Original');%显示原图
subplot(122),imshow(BW);title('Processed') ;%显示处理后的图像
%显示直方图
figure;
histogram(A);   
xlim([0 255]);


**4.实验结果与分析**

图1 指纹处理结果图

图2 指纹图像直方图

从图1中可以看出指纹图像进行处理之后的图像,其中Original标题的为指纹图像原图,Processed标题的图像为进行迭代阈值分割处理之后的图像。通过图像之间的对比,可以看出指纹周围的图像被分割处理成白色的,而指纹部分为黑色,从而分割成功。图2为指纹图像原图的直方图。
**5.结论与展望**
       为了提高收敛速度,初始阈值T的选择要稍微注意些。当目标与背景的面积相当时,可以将初始阈值T设置为整个图像的平均灰度值;当目标与背景的面积相差较大时,更好地选择是将初始阈值T设置为最大灰度值和最小灰度值的中间值。

猜你喜欢

转载自blog.csdn.net/qq_42532598/article/details/108974727