仅对于纵切方式的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