📄 thin.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 + -