• 大小: 5KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: Matlab
  • 标签: OPTA  图像细化  

资源简介

一种改进的形态学细化算法,是一个可以运行的完整的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=

评论

共有 条评论