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

📄 thinning3.asv

📁 matlab代码
💻 ASV
字号:
function out=thinning3(in);

%基于索引表的细化算法
%功能:对图象进行细化
%initial index
%deletemark= [0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,1,0,1,1,1,0,1,1,0,0,1,1,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,1,1,1,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0];
%deletemark= [0,0,0,0,0,0,0,1,   0,0,1,1,0,0,1,1,   0,0,0,0,0,0,0,0,    0,0,1,1,1,0,1,1,    0,0,0,0,0,0,0,0,    1,0,0,0,1,0,1,1,    0,0,0,0,0,0,0,0,    1,0,1,1,1,0,1,1,    0,0,0,0,0,0,0,0,    0,0,0,0,0,0,0,0,    0,0,0,0,0,0,0,0,0,    0,0,0,0,0,0,0,0,    0,0,0,0,0,0,0,1,    0,0,0,1,0,1,1,1,0,    0,0,0,0,0,0,1,0,    1,1,1,0,1,1,0,0,    1,1,0,0,1,1,0,0,    0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,1,1,1,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1,1,0,0];
%new index
%deletemark=[0 0 0 1 0 0 1 1    0 0 0 0 1 0 1 1  0 0 0 0 0 0 0 0   1 0 0 0 1 0 1 1   0 0 0 0 0 0 0 0             0 0 0 0 0 0 0 0     1 0 0 0 0 0 0 0     1 0 0 0 1 0 1 0     0 0 0 0 0 0 0 0     0 0 0 0 0 0 0 0     0 0 0 0 0 0 0 0       0 0 0 0 0 0 0 0     1 0 0 0 0 0 0 0     0 0 0 0 0 0 0 0       1 0 0 0 0 0 0 0     1 0 0 0 1 0 1 1     1 0 1 0 0 0 0 1      0 0 0 0 0 0 0 1    0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 1   0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0     0 1  0 1 0 0 0 1    0 0 0 0 0 0 0 1    0 0 0 0 0 0 0 0     0 0 0 0 0 0 0 0    0 1 0 0 0 0 0 0   0 0 0 0 0 0 0 0    1 1 0 0 0 0 0 0  0 0 0 0 0 0 0 0];
deletemark=[0 0 0 1 0 0 1 1    0 0 0 0 1 0 1 1  0 0 0 0 0 0 0 0   1 0 0 0 1 0 1 1   0 0 0 0 0 0 0 0             0 0 0 0 0 0 0 0     1 0 0 0 0 0 0 0     1 0 0 0 1 0 0 0     0 0 0 0 0 0 0 0     0 0 0 0 0 0 0 0     0 0 0 0 0 0 0 0       0 0 0 0 0 0 0 0     1 0 0 0 0 0 0 0     0 0 0 0 0 0 0 0       1 0 0 0 0 0 0 0     1 0 0 0 1 0 1 1     1 0 1 0 0 0 0 1      0 0 0 0 0 0 0 1    0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 1   0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0    0 0 0 0 0 0 0 0   0 0 0 0 0 0 0 0     0 1  0 1 0 0 0 1    0 0 0 0 0 0 0 1    0 0 0 0 0 0 0 0     0 0 0 0 0 0 0 0    1 1 0 0 0 0 0 0   0 0 0 0 0 0 0 0    1 1 0 0 0 0 0 0  0 0 0 0 0 0 0 0];

out=in;
[width,height]=size(in);
length=width*height;
bStart=1;
%temp=zeros(width,height);
%while(bStart)
for k=1:1
%    bStart=0;
%    for i=2:width-1
%        for j=2:height-1
%           if out(i,j)==1
%               sum=out(i-1,j-1)&out(i,j-1)&out(i+1,j-1)&out(i+1,j)&out(i+1,j+1)&out(i,j+1)&out(i-1,j+1)&out(i-1,j);
%               if sum==0
%                    temp(i,j)=1;
%                       end
%           end
%        end
%   end         
for i=2:width-1
        for j=2:height-1
            if out(i,j)==1
            %    num=table1(i,j,out);    
               num= out(i-1,j-1)+out(i-1,j) * 2+out(i-1,j+1) * 4+out(i,j+1) * 8+out(i+1,j+1) * 16+out(i+1,j) * 32+out(i+1,j-1) * 64 + out(i,j-1) * 128;
               if  deletemark(num+1)==1
                    out(i,j)=0;
               sum=out(i-1,j-1)+out(i,j-1)+out(i+1,j-1)+out(i+1,j)+out(i+1,j+1)+out(i,j+1)+out(i-1,j+1)+out(i-1,j);
               if sum==0
                   out(i,j)=0;
                  %  bStart=1;
              end
          end
      end
  end
end

⌨️ 快捷键说明

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