MATLAB规则碎纸片拼接

MATLAB规则碎纸片拼接1、课题意义图像碎片复原技术是一项综合的并具有实用价值的研究课题,它的最终目的是要从大量的任意图像碎片中找出真正符合实际的匹配对,并根据这些匹配关系将相邻的图像碎片拼合起来重现图像的原貌。图像碎片的复原工作是以实际碎片为参考依据进行的,建立能够准确描述实物的计算机模型是图像碎片复原工作的关键步骤之一,对碎片复原的后续工作有基础性的作用,模型建立的准确性和复杂性将影响到后续工作能否顺利进行下去。本文…

1、课题意义

图像碎片复原技术是一项综合的并具有实用价值的研究课题,它的最终目的是要从大量的任意图像碎片中找出真正符合实际的匹配对,并根据这些匹配关系将相邻的图像碎片拼合起来重现图像的原貌。

图像碎片的复原工作是以实际碎片为参考依据进行的,建立能够准确描述实物的计算机模型是图像碎片复原工作的关键步骤之一,对碎片复原的后续工作有基础性的作用,模型建立的准确性和复杂性将影响到后续工作能否顺利进行下去。

本文利用边缘特征点匹配,相关系数,广度搜索法等方法建立了规则碎纸片的拼接复原模型。

对于问题一,我们利用边缘特征点匹配的方法,先提取边缘特征点的灰度矩阵,再寻找矩阵相似度最大的碎片实现匹配。

对于问题二,我们采用了基于文字特征的半自动拼接方法,通过找到相交点距离相等的最大个数来确定匹配图像。

对于问题三,我们提取了各边的像素作为灰度矩阵,用X,Y,H,L确定目标函数

d3ea224afdca8a7f469274c88f785258.png

运用广度搜索算法找出最佳匹配项。

最后,本文还对模型推广进行了进一步讨论,分析了模型的优缺点,提出了改进模型的方法和思路。

关键词:图像拼接;规则碎片;图像复原;灰度矩阵;广度搜索算法;特征匹配;自动拼接;图像分割;匹配准则

2.问题的重述

破碎文件的拼接在司法物证复原、历史文献修复及军事情报获取等领域都有重要的应用。传统拼接复原工作由人工完成,准确率较高,但效率很低。随着计算机技术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。碎纸自动拼接技术是图像处理与模式识别领域中的一个较新但是很典型的应用,它是通过扫描和图像提取技术获取一组碎纸片的形状、颜色等信息,然后利用计算机进行相应的处理从而实现对这些碎纸片的全自动或半自动拼接还原。请讨论以下问题:

1. 对于给定同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原。每页纸被切为19条碎片。如果复原过程要人工干预,请写出干预方式及干预的时间节点。复原结果以图片形式及表格形式表达,将碎片序号按复原后顺序填入1×19的表格。

2. 对于碎纸机既纵切又横切的情况,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。每页纸被切为11×19个碎片。如果复原过程要人工干预,表达要求同上,将碎片序号按复原后顺序填入11×19的表格。

3. 上述所给碎片数据均为单面打印文件,还可能有双面打印文件的碎纸片拼接复原问题要解决。附件5给出一页英文印刷文字双面打印文件的碎片数据。每页纸被切为11×19个碎片,每个碎片有正反两面。每一碎片对应两个文件,共有2×11×19个文件。请尝试设计相应的碎纸片拼接复原模型与算法,并就附件5的碎片数据给出拼接复原结果,表达要求同上,将碎片序号按复原后顺序填入两个11×19的表格。(以上若不能确定复原位置的碎片,可不填入上述表格,单独列表。)

3、效果图

397af31c2eb11b8edba10cdc1beeb100.png

附件1的复原图

db40622a08d746defbad50c1c7241e37.png

附件2的复原图

附录二:

051a8f004668d59089f60061f596f84e.png

附件3的复原图

fa3c6dea573dad514c98632468062a30.png

附件4的复原图

4、程序代码
clc;clear
A=cell(1,19);
for i=0:18;                        
    if i<=9
       NO=strcat('00',num2str(i));
    elseif i<=99
       NO=strcat('0',num2str(i));
    else NO=num2str(i);
    end    
dir=[NO,'.bmp'];
a=imread(dir,'bmp');          
end
 for k=1:19                         
    B{1,k}=im2bw(A{1,k});          
 end
%for k=1:19
   % imshow(B{1,k},[])               
%end
C=cell(1,19);
M=zeros(1980,19);
N=zeros(1980,19);
for i=1:19;
    m=find(B{1,i}(:,1)==0);
    if sum(m)==0;
        c=i;      
    end
    M(1:end,i)=B{1,i}(:,1);      n=find(B{1,i}(:,72)==0);
     if sum(n)==0
         d=i;      
     end
    N(1:end,i)=B{1,i}(:,72);  end
M1=[];N1=[];
for i=1:19;                            
    m=find(B{1,i}(:,1)==0);
    n=find(B{1,i}(:,72)==0);
    M1=[M1;length(m)];
    N1=[N1;length(n)];
end
save M1.mat;save N1.mat;save M.mat;save N.mat;
n2=c;n3=d;
global d5
d5=[c];
n6=xuanze(n2,n3);
d5=[d5,d]             D=[];
for i=1:19
    k=d5(i);
    D=[D,B{1,k}];
end
imshow(D,[]);

function n6=xuanze(n2,n3)
load M1;load N1; load M;load N;
M(:,n3)=0;
global d5
n6=0;
 d1=[];
 for i=1:19
     d2=corrcoef(M(1:end,i),N(1:end,n2));
     d1=[d1,d2(1,2)];
 end
 for j=1:length(d5)
     k1=d5(j);
    d1(k1)=0;
 end   
  d4=max(d1');
  n6=[n6,n2];
  n2=find(d1==d4);
  d5=[d5,n2];
  if length(d5)==18
      return
  end  
  n6=xuanze(n2,n3);
   end

今天的文章MATLAB规则碎纸片拼接分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/28625.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注