• 大小: 2.79KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-03-27
  • 语言: Matlab
  • 标签: matlab  

资源简介


自己编的链码程序(matlab),里面x.mat是一个人体轮廓图,encode2.m是对该轮廓图编写的归一化链码。若求其他目标的链码,将x替换一下即可。

资源截图

代码片段和文件信息

load x.mat;
f1=im2bw(x);
figure(1);
imshow(f1);
%得到链码code
f2=bwboundaries(f1);
f3=f2{1};
f4=zeros(size(f1));
for i=1:size(f31)
    f4(f3(i1)f3(i2))=1;
   % f4(f3(i1)f3(i2)-1)=1;
   % f4(f3(i1)f3(i2)+1)=1;
    %f4(f3(i1)-1f3(i2))=1;
    %f4(f3(i1)+1f3(i2))=1;
end
figure(2);
imshow(f4);


code=zeros(1size(f31));
k=1;
x1=f3(12);y1=f3(11);
for i=2:size(f31)
    xi=f3(i2);yi=f3(i1);
    dx=xi-x1;
    dy=yi-y1;
    if dx==1 & dy==0
        code(k)=0;k=k+1;x1=xi;y1=yi;
    end
    if dx==1 & dy==-1
        code(k)=1;k=k+1;x1=xi;y1=yi;
    end
    if dx==0 & dy==-1
        code(k)=2;k=k+1;x1=xi;y1=yi;
    end
    if dx==-1 & dy==-1
        code(k)=3;k=k+1;x1=xi;y1=yi;
    end
    if dx==-1 & dy==0
        code(k)=4;k=k+1;x1=xi;y1=yi;
    end
    if dx==-1 & dy==1
        code(k)=5;k=k+1;x1=xi;y1=yi;
    end
    if dx==0 & dy==1
        code(k)=6;k=k+1;x1=xi;y1=yi;
    end
    if dx==1 & dy==1
        code(k)=7;k=k+1;x1=xi;y

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2008-04-29 22:03  链码\
     文件        1603  2008-03-01 09:09  链码\encode2.m
     文件      311224  2005-05-31 16:09  链码\x.mat

评论

共有 条评论