clear;clc;
f=imread('Fig10.29(a).jpg');
[m,n]=size(f);
Pn=zeros(m,n);
G1=zeros(m,n);
G2=zeros(m,n);
%%迭代法%%%%%
T=mean(mean(f)); %初始阈值
T1=0;
while(abs(T-T1)>0.3)
R1=find(f>=T);
R2=find(f<T);
T1=T;
T=(mean(mean(f(R1)))+mean(mean(f(R2))))/2;
Pn(R1)=1;
Pn(R2)=0;
end
Pn=uint8(Pn*255);
imhist(f),title('Original hist'),ylabel('pixel num'),axis tight; %原图直方图
hold on;
plot([T, T], [0,5000],'r'); %标注阈值
yu = sprintf('T=%d ', T);
text(T+20,4000,yu);
figure;
subplot(121); %原始图像
imshow(f),title('Original');
subplot(122); %分割后二值图
imshow(Pn),title('Binary image');
图像二值分割(迭代法)
最新推荐文章于 2021-03-19 05:27:47 发布