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

📄 thinning5.asv

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


%initial index table
%index=[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	0	0	0	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	0	0	0	0	0	0	0	0	1	0	0	0	1	0	0	0	1	0	0	0	0	0	0	0	1	0	0	0	1	0	0	0	0	0	1	1	0	0	1	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	0	1	1	1	0	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	1	1	0	1	0	0	0	0	0	0	0	0	0	0	0	0	1	1	0	0	0	0	0	0	1	0	0	0	0	0	0	0];
%new index table
index=[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	1	0	1	0	0	0	0	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	0	0	0	0	0	0	0	0	1	0	0	0	1	0	0	0	1	0	0	0	0	0	0	0	1	0	0	0	1	0	0	0	0	0	1	1	0	0	1	1	0	0	1	0	0	0	0	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	1	1	0	0	0	0	0	1	0	0	0	0	0	0	0	1	1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	1	1	1	0	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	1	1	0	1	0	0	0	0	0	0	0	0	0	0	0	0	1	1	0	0	0	0	0	0	1	0	0	0	0	0	0	0];
out=in;
[width,height]=size(in);
length=width*height;
for i=2:width-2
    for j=2:height-2
        if out(i,j)==1    
           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  index(num+1)==1
               out(i,j)=0;             
           end           
           if num==74
              out(i,j+1)=0;
              out(i+1,j+1)=0;
            end
           if num==146
              out(i-1,j)=0;
              out(i-1,j+1)=1;
           end
           if num==164
               out(i-1,j-1)=1;
              out(i,j-1)=0;
           end
           if num==41
             out(i+1,j-1)=1;
            out(i+1,j)=0;
            end
            %保留模板
           if out(i,-1,j)==1 & out(i-1,j+2)==0 &out(i,j-1)==0 &out(i,j+1)==1 &out(i,j+2)==0 & out(i+1,j)==1 & out(i+1,j+2)==0 
               out(i,j)=1;
           end
           if out(i-1,j+1)==0 &out(i-1,j+2)==0 &out(i,j-1)==0 & out(i,j+1)==1 & out(i,j+2)==0 & out(i+1,j+1)==1
               out(i,j)=1;
               if num==120 & out(i-1,j+2)==0 & out(i+1,j+2)==1 &out(i+2,:)==[1 1 1 1]
                   out(i,j)=0;
               end
           end
           if out(i-1,j+1)==1 & out(i,j-1)==0 & out(i,j+1)==1 &out(i,j+2)==0 & out(i+1,j+1)==0 out(i+1,j+2)==0
               out(i,j)=1;
           end
           if out(i-1,j)==0 & out(i,j-1)==1 & out(i,j+1)==1 & out(i+1,j)==1 &out(i+2,j-1)==0 & out(i+2,j)==0 & out(i+2,j+1)==0
               out(i,j)=1;
           end
           if out(i-1,j)==0 & out(i+1,j-1)==1 & out(i,j+1)==1 & out(i
          end
      end
  end

⌨️ 快捷键说明

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