MatlabA4纸碎片复原

仅对于纵切方式的A4纸碎片复原代码(Matlab)

本代码仅用于学习使用,更多方式的碎纸复原请联系本人。

close all;
clear all;
clc;
W = cell(20, 1);
imname = dir('*.bmp');
im_num = length(imname);
im_temp = imread(imname(1).name,'bmp');
[height,width] = size(im_temp);
for a = 1:length(imname)   
   DB(:,:,a) = imread(imname(a).name,'bmp');%读取图像数据
   I{a} = DB(:,:,a);
    gml{a}=I{a}(:,1);
    gmr{a}=I{a}(:,72);
end
for a = 1:length(imname) 
   for b = 1:length(imname) 
     corr2(gml{a},gmr{b}); 
      if 0.75<ans&&ans<0.95
        j(b)=ans;
        l(b)=b-1;
        r(b)=a-1;
      end
   end
end
lq= setdiff(l,r); %最左边的图片,找不到可以用其他图片的右边匹配拼接的图片 
rq= setdiff(r,l); %最右边的图片,找不到可以用其他图片的左边匹配拼接的图片
h(1)=lq;
t=find(l==lq);
i=2;
while(r(t)~=rq)
    h(i)=r(t);
    t=find(l==r(t));
    i=i+1;
end
h(19)=rq;
c = [l; r];
h
posted @ 2013-11-29 17:29  可为  阅读(708)  评论(0编辑  收藏  举报