资源简介
一种改进的形态学细化算法,是一个可以运行的完整的matlab文件。
代码片段和文件信息
% 下面是算法实现的程序代码:
I0=imread(‘C:\Users\Administrator\Desktop\test0327\04.bmp‘);
% I1=imread(‘tire.tif‘); %读灰度图tire.tif
% I2=imnoise(I1‘salt & pepper‘); %在图像上加入椒盐噪声
subplot(321)imshow(I0) %显示加椒盐噪声后的灰度图像
% I1=I0(::1);%读取灰度图像
I1=I0;
I2=medfilt2(I1[11]);%中值滤波
%
subplot(322)imshow(I2)
% for m=140:1:494
% for n=500:1:659
% I000(mn)=0;
% end
% end
% I2=im2double(I000);
k=graythresh(I2);
I3=im2bw(I20.2); %把灰度图像二值化
subplot(323)imshow(I3) %显示二值化后的图像
% I4=I3(200:700250:850);
% I4=medfilt2(I3[55]);%中值滤波
% % 膨胀
se1=strel(‘disk‘3);
I5= imdilate(I4se2);
subplot(324)imshow(I5) %显示膨胀后的图像
%
% %腐蚀
se2=strel(‘disk‘3);
I6= imerode(I3se1);
subplot(325)imshow(I6) %显示腐蚀后的图像
%
f=I5;%(200:399200:499);
tt=0;
for i=3:1:958
for j=3:1:1278
tt=tt+1;
c=0;
c1=0;
c2=0;
c3=0;
c4=0;
count=0;
count1=0;
count2=0;
if f(ij)==0
continue
else
s=zeros(55);
for m=1:1:5
for n=1:1:5
s(mn)=f(i+(m-3)j+(n-3));
end
end
% s(22)=f(i-1j-1);
% s(23)=f(i-1j);
% s(24)=f(i-1j+1);
% s(32)=f(ij-1);
% s(33)=f(ij);
% s(34)=f(ij+1);
% s(42)=f(i+1j-1);
% s(43)=f(i+1j);
% s(44)=f(i+1j+1);
%%逐个判断条件
%%判断2<=N22<=6
C=s(22)+s(23)+s(24)+s(32)+s(34)+s(42)+s(43)+s(44);
if C>=2&&C<=6
c1=1;
else c1=0;
end
%%判断T(s33)=1
% count=0;
if(s(23)==0&&s(22)==1)count=count+1;end
if(s(22)==0&&s(32)==1)count=count+1;end
if(s(32)==0&&s(42)==1)count=count+1;end
if(s(42)==0&&s(43)==1)count=count+1;end
if(s(43)==0&&s(44)==1)count=count+1;end
if(s(44)==0&&s(34)==1)count=count+1;end
if(s(34)==0&&s(24)==1)count=count+1;end
if(s(24)==0&&s(23)==1)count=count+1;end
if count==1
c2=1;
else
c2=0;
end
% end
%%判断s12*s21*s23=
评论
共有 条评论