luranlr007 发表于 2007-5-24 19:48

求救,关于傅立叶描述子进行图像的边界重构问题~~~~~!

这是我毕业设计中的一个程序:利用傅立叶描述子进行边界重构
程序分2个部分:
1.获取原始图像的边界,程序如下:
A=imread('二值图(灰度).bmp');
A=im2bw(A);
imshow(A);
%获取图像的边界
L=bwlabel(A,8);          %对图像进行标记
B=zeros(0,2);            %初始化B
per=bwperim(L);          %得到区域周长的图像
L2=bwlabel(per,8);       %标记区域周长图像
=find(L2==1);       %找到组成周长的像素的坐标
rr=zeros(length(r),1);   %初始化rr,cc
cc=zeros(length(c),1);
rr(1)=r(1);cc(1)=c(1);
r(1)=0;    c(1)=0;
dir=0;                   %方向
%寻找边界
for j=1:1:length(r)
    %查找当前点各个方向上的邻居点
    =find((r==rr(j)+1)&(c==cc(j)));
    =find((r==rr(j)+1)&(c==cc(j)-1));
    =find((r==rr(j))&(c==cc(j)-1));
    =find((r==rr(j)-1)&(c==cc(j)-1));
    =find((r==rr(j)-1)&(c==cc(j)));
    =find((r==rr(j)-1)&(c==cc(j)+1));
    =find((r==rr(j))&(c==cc(j)+1));
    =find((r==rr(j)+1)&(c==cc(j)+1));
    %依次按1,8,7,6,5,4,3,2的方向把邻居点作为下一个当前点
    x=0; y=0;
    if~isempty(r1)
      x=r1; y=c1; dir=1;
    elseif~isempty(r8)
      x=r8; y=c8; dir=8;
    elseif~isempty(r7)
      x=r7; y=c7; dir=7;
    elseif~isempty(r6)
      x=r6; y=c6; dir=6;
    elseif~isempty(r5)
      x=r5; y=c5; dir=5;
    elseif~isempty(r4)
      x=r4; y=c4; dir=4;
    elseif~isempty(r3)
      x=r3; y=c3; dir=3;
    elseif~isempty(r2)
      x=r2; y=c2; dir=2;
    end % endif
    if x==0 & y==0
          break;
    end
    rr(j+1)=r(x); cc(j+1)=c(x);
    r(x)=0;       c(x)=0;
end;
rr(j+1)=rr(1);
cc(j+1)=cc(1);
B=;
第一个想请教大虾们的问题就是这里的B怎么转换成图像?
2.这是程序的第2个部分,是利用傅立叶描述子对获取的边界B进行重构,程序如下:
=size(B);
if nr/2~= round(nr/2)%如果nr不是偶数
      B(end +1,:)=B(end,:);
      nr=nr+1;
end
x=0:(nr-1);         %计算系数
m=((-1).^x)';
B(:,1)=m.*B(:,1);
B(:,2)=m.*B(:,2);
B=B(:,1)+i*B(:,2);
fd=fft(B);            %傅立叶变换
nfd=length(fd);       %傅立叶描述子的长度
n=255;                %用于恢复的项数
d=round((nfd-n)/2);   %计算需要清零的项数
fd(1:d)=0;            %清零
fd(nfd-d+1:nfd)=0;
iff=ifft(fd);         %傅立叶逆变换
ifd(:,1)=real(iff);   %分别提取实部和虚部
ifd(:,2)=imag(iff);
ifd(:,1)=m.*ifd(:,1);
ifd(:,2)=m.*ifd(:,2);
第二个想请教大虾们的问题就是这里的ifd怎么转换成图像?哪位大虾99我啊,小弟在这里谢了!!!!!!!!

[ 本帖最后由 luranlr007 于 2007-5-24 19:50 编辑 ]
页: [1]
查看完整版本: 求救,关于傅立叶描述子进行图像的边界重构问题~~~~~!