MATLAB碎纸片的自动拼接复原技术

MATLAB碎纸片的自动拼接复原技术



意义:破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。目前发现对碎纸片的拼接大部分由人工完成,准确率较高,但耗费大量人力财力及时间,效率很低。随着计算机技术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。现先对仅纵切的碎纸片进行研究,开发出利用计算机,更便捷快速拼接碎纸片的方法。







  1. 背景

碎纸拼接技术及项目背景

为从民主德国时期安全部门的档案碎片中寻找秘密,德国政府自1991年起开始着手还原这些档案。一直到2007年,负责整理这些档案碎片的部门一直采取手工还原的方式,工作人员将碎片铺在大桌子上,通过人名和签名等痕迹将它们拼凑起来。历经17年,25名工作人员已将350袋碎片拼好,但等待它们的还有106万袋,按这个速度,他们要花几个世纪才能完成任务。德国政府决定花费835万美元,准备用计算机软件将约600万块碎纸片拼接起来[1]。同样,2011年美国国防部高级研究项目局发起“拼图挑战”,谁最先将5份切碎的文件拼凑起来将获得5万美元奖金。此举旨在希望有人能够开发计算机算法,解决文件拼接问题,方便美国军方读取战场上所获文件碎片的内容[2]。因此,开展对碎纸片的自动拼接复原技术的研究有着重要的现实意义。

  1. 算法思路


根据以上科学知识的研究,首先对碎纸片拼接技术建立数学建模。

由于所给碎纸片为黑字白底,仅黑白两种颜色,可以将其断定为灰度图像,从而无需将其转换为灰度图像。如果所给图像为彩色图像,则需要用rgb2gray()函数将彩色图像转换为灰度图像后再进行研究计算。

首先将灰度图像使用imread()函数转换为灰度值矩阵,由于图片为1980*72的尺寸,故得到的灰度值矩阵为1980行72列。

经分析可知,两张碎纸片若能无缝拼接,则这两张碎纸片之间的关系为,左边碎纸片对应的灰度值矩阵的最后一列与右边碎纸片对应的灰度值矩阵的第一列相似度最大,在忽略边缘效应的情况下可以认为这两列的值是完全相等的。故设计一段程序使之按照这种规律循环。由此可以判定出我们所需要的只是每个灰度值矩阵中的第一列和最后一列的数值,通过判断彼此之间的相似度关系可以得出碎纸片拼接顺序。同时,我们可以通过灰度值矩阵的第一列数值判断出第一张待接碎纸片。经过观察,我们发现第008张图片的第一列灰度值均为255,即全白,对于一张完整的印有字体的完整的纸而言,唯有其灰度值矩阵中的第

  • 7
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值