碎纸片的拼接复原算法及MATLAB实现.doc

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
碎纸片的拼接复原算法及MATLAB实现

2013高教社杯全国大学生数学建模竞赛 承 诺 书 我们仔细阅读了《全国大学生数学建模竞赛章程》和《全国大学生数学建模竞赛 赛区评阅编号(由赛区组委会评阅前进行编号): 2013高教社杯全国大学生数学建模竞赛 编 号 专 用 页 赛区评阅编号(由赛区组委会评阅前进行编号): 赛区评阅记录(可供赛区评阅时使用): 评 阅 人 评 分 备 注 全国统一编号(由赛区组委会送交全国前编号): 全国评阅编号(由全国组委会评阅前进行编号): 碎纸片的拼接复原算法及MATLAB实现 摘要:对于只有纵切的情形,文章通过比较当前待拼碎片与剩余碎片的信噪比psnr[1,3,4]的值来确定两碎片是否为邻接碎片;拼接算法首先连续调用右拼函数直到拼接到原图右边界,然后连续调用左拼函数直到拼接到原图左边界,从而得到整幅复原图像;对于单面纵横交错切的情形,文章对首先采用纵切拼接算法将碎片拼接成多幅横条图片,然后将各横条图片矩阵转置[2],再次采用纵切拼接算法拼接;两种情形的拼接,都存在人为参与;实验证明,我们的算法对纵切情形是有效的,对纵横切情况是可行的。 关键字:纵切;单面纵横交错切;双面纵横交错切;信噪比;左拼函数;右拼函数;矩阵转;Matlab[5]编程 一、问题描述 破碎文件的拼接在司法物证复原、历史文献修复获取等领域都有重要的应用。传统上,复原工作需由人工完成,准确率较高,但效率很低。特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。随着计算机技术的发展,人们试图开发碎纸的自动拼接技术,以提高拼接效率。对于给定的来自同一页的片(仅纵切),建立碎纸拼接算法,并针对附件1给出的数据进行复原对于碎纸机纵切横切的情形,模型和算法,并针对附件给出的数据进行复原。从现实出发,模型与算法Matlab编程实现拼接算法中的几个功能模块及调用关系 整个问题解决方案的实现代码分成以下几个功能模块: read1()函数:将待处理碎片集‘附件1’读入一个三维矩阵中,程序中设置的默认读取路径是d:\盘根目录,所以,需要把待拼碎片文件夹放在该路径下。 read2()函数:将待处理碎片集‘附件2’读入一个三维矩阵中,其余同上。 read3()函数:将待处理碎片集‘附件3’读入一个三维矩阵中,其余同上。 read4()函数:将待处理碎片集‘附件4’读入一个三维矩阵中,其余同上。 f2()函数:按右拼方法实现两个单面纵切碎片的拼接。 f3()函数:按左拼方法实现两个单面纵切碎片的拼接。 paixu2()函数:实现psnr序列的排序。 psnr()函数:求解两个碎片矩阵的边界列向量的信噪比值。 pinjie1()函数:实现对附件1单面纵切图片的拼接。 pinjie2()函数:实现对附件2单面纵切图片的拼接。 pinjie3()函数:实现对附件3单面纵横交错切所得碎片的拼接。 pinjie4()函数:实现对附件4单面纵横交错切所得碎片的拼接。 ff()函数:对于单面纵横交错切的情形,将参与拼成横条图片的碎片从当前碎片集合中筛掉。 上述几个函数之间的调用关系是: ① 对只有纵切的情形,直接调用pinjie1()函数、pinjie2()函数进行拼接即可。拼接函数pinjie1()函数、pinjie2()函数,首先通过read1()或read2()将纵切碎片读入三维矩阵,然后通过反复调用f2()和f3()实现整副图的拼接。而f2()和f3()实现拼接时需要判断当前待拼碎片与剩余碎片相应边界列向量的信噪比值psnr,并且存入一维数组中,并进行paixu()函数排序。所以,f2()和f3()需要调用psnr()和paixu2()函数。然后在窗口出入pinjie1代码和pinjie2代码进行结果运算。 ②对既有纵切又有横切的情形,直接调用pinjie3()函数、pinjie4()函数即可。该拼接函数是在pinjie1()函数、pinjie2()函数的基础上添加了循环控制,并通过调用ff()函数将已拼碎片与剩余图片进行分离,从而将所有碎片拼成多个条形图片,并通过调用pinjie5()函数将条形图片拼成最终的原图。 四、实验结果及分析 对只有纵切的情形,直接调用pinjie1()函数和pinjie2()函数分别对附件1和附件2进行拼接即可。拼接函数pinjie1()和pinjie2()在执行过程中,首先分别通过read1()和read2()将纵切碎片读入三维矩阵,然后通过反复调用f2()和f3()实现整副图的拼接。实验结果如附录2中图1和图2所示。结果表明,我们的方法是高效且可行的。 对于纵横切的情形,首先在Matlab中对函数read3()和read4()进行调用,从而将附件3和附件4中的碎片读入到三维矩阵中,

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档