⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thin.m

📁 DigitalImageProcessing_base_on_Matlab 基于Matlab的数字图像处理
💻 M
字号:
%函数thin.m: 细化%
function [y,count]=thin(x,type)
%type=1:做一次东南边界的细化%
%type=2:做一次西北边界的细化%
%x:输入图像%
%y:输出图像%
%count=1:已做细化%
%count=0:没有做细化%
[xi,xj]=size(x);                 %图像大小
mask=zeros(xi,xj);
for i=2:(xi-1)
   for j=2:(xj-1)
      if x(i,j)~=0
         s=0;p1=x(i,j);p2=x(i,j-1);p3=x(i+1,j-1);p4=x(i+1,j);p5=x(i+1,j+1);p6=x(i,j+1);
         p7=x(i-1,j+1);p8=x(i-1,j);p9=x(i-1,j-1);
         b=[p2 p3 p4 p5 p6 p7 p8 p9 p2];[nn nm]=size(b); n=sum(b(1:8));
         
         for u=1:nm-1
            if (b(u+1)-b(u))<0
               s=s+1; 
            end       
         end  
         
         if type==1
            l1=p2*p4*p6;     %东边界的判别
            l2=p4*p6*p8;     %南边界的判别
         elseif type==2 
            l1=p2*p4*p8;     %北边界的判别
            l2=p2*p6*p8;     %西边界的判别
         end
         
         if (2<=n & n<=6 & s==1 & l1==0 & l2==0)
            mask(i,j)=p1;    %满足上式则p1=0
            count=1;
         else
            count=0;
         end
         
      end
   end
end

y=x-mask;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -