碎纸片的拼接复原问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013高教社杯全国大学生数学建模竞赛
编号专用页
赛区评阅编号(由赛区组委会评阅前进行编号):
全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):
碎纸片的拼接复原问题
摘要
破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。本文针对已给图像先进行了图片灰度二值化处理得到碎纸片的像素矩阵,提取碎纸片的边缘像素矩阵,对边缘矩阵进行相似度分析,相似度的度量采用向量距离平方和最小化,在相似度度量中设置阈值、对相近相似度的候选纸片进行人工干预、对数据量较大的附件,采用文本特征,如页边距、行距进行筛选,降低计算量,提高计算精度。使用Matlab软件编程实现了上述算法,在对附件的拼接中通过少量的人工干预,可实现纸片的完整拼接,效果较好。
关键词:相似度;文字特征;碎纸片拼接;Matlab;
1 问题重述
1.1 问题的描述
设计一个碎纸片的自动拼接模型,以提高碎纸片的拼接复原效率。
1.2 问题的要求
(1)对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果以图片形式及表格形式表达。
(2)对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果表达要求同上。
(3)从现实情形出发,还可能有双面打印文件的碎纸片拼接复原问题需要解决。附件5给出的是一页英文印刷文字双面打印文件的碎片数据。请尝试设计相应的碎纸片拼接复原模型与算法,并就附件5的碎片数据给出拼接复原结果,结果表达要求同上。
1.3 问题的分析
对破碎文件这类边缘相似的碎纸片的拼接,理想的计算机拼接过程应与人工拼接过程类似,即拼接时不但要考虑待拼接碎纸片边缘是否匹配,还要判断碎纸片内的字迹断线或碎片内的文字内容是否匹配,然而由于理论和技术的限制,让计算机具备类似人那种识别破碎边缘地字迹断线、以及理解碎片内文字图像含义的智能几乎不太可能。但是分析了基于几何特征的碎纸片自动拼接方法的缺点,研究了碎纸片内文字行特征以及行特征获取方法。利用这些信息进行拼接,其拼接效率无疑比单纯利用边界几何特征方法要好些。
另一方面由于计算机数字分析图像能力的缺陷,让计算机对碎片进行完全意义上的自动化拼接也几乎不大可能,这就需要我们在拼接过程加入人工干扰过程,对一些碎片进一步分析结果舍弃或拼接待选。
2 模型假设和符号系统
2.1 模型假设
(1)假设问题中所给的碎片图像边缘没有破损; (2)假设附件中每张碎片的形状和大小都一致;
(3)假设附件中的每张碎片中的字体都清楚且没有重叠部分; 2.2 符号系统
i A :表示附件1中图像进行二值化处理得到的第i 个数据矩阵; i B :表示附件2中图像进行二值化处理得到的第i 个数据矩阵; i C :表示附件3中图像进行二值化处理得到的第i 个数据矩阵; i d :表示附件3中第i 次运行得到的数据矩阵;
ij d :表示附件3中第i 次运行第j 次人工干预得到的数据矩阵;
E:表示附件5中图片009.bmp 的运行结果; K :表示附件1复原后的碎纸片排列序号; Q :表示附件2复原后的碎纸片排列序号。
3 模型的建立及求解
3.1 模型一的建立 3.1.1 模型一的概要
将附件1~2中碎纸片进行图片灰度二值化处理得到碎纸片的像素矩阵,提取碎纸片的边缘像素矩阵,对各矩阵数据进行人工遍历搜索,提取出文件左右两边的碎纸片。对边缘矩阵进行相似度分析,相似度的度量采用向量距离平方和最小化。利用Matlab 编程对各附件的碎纸片图像进行自动拼接。 3.1.2 模型一的分析
(1)对于附件1
步骤1:将附件1中碎纸片图像利用Matlab 软件进行二值化处理(源程序代码见附录1代码1),得到数据矩阵191~A A ;
步骤2:对数据矩阵191~A A 的数据进行人工遍历搜索可看出矩阵9A 的前几列数据全为255,矩阵7A 的后几列数据全为255(在像素矩阵中255代表白色,0代表黑色),所以附件1中i9(008.bmp)为复原后的第一张图片,i7(006.bmp)为复原后的最后一张图片;
步骤3:将i9(008.bmp)和i7(006.bmp)提取出来,用第一张图片右边缘像素值与剩余碎纸片的左边缘像素值依次进行差的平方,求相似度,得到最优解。编写程序(源程序代码见附录1代码2),利用Matlab 软件实行碎纸片的自动拼接得到复原后碎纸片排列序号K 。
(2)对于附件2
步骤1:将附件2中碎纸片图像利用Matlab 软件进行二值化处理(源程序代码见附录代码1),得到数据矩阵191~B B ;
步骤2:对数据矩阵的数据191~B B 进行人工遍历搜索可看出矩阵4B 的前几列数据全为255,矩阵5B 的后几列数据全为255(在像素矩阵中255代表白色,0代表黑色),所以附件1中Name4(003.bmp)为复原后的第一张图片,Name5(004.bmp)为复原后的最后一张图片;
步骤3:将Name4(003.bmp)和Name5(004.bmp)提取出来,在附件一的基础上根据碎片的文字特征即页边距进行分析,编写程序(源程序代码见附录1代码3),利用Matlab 软件实行碎纸片的自动拼接得到复原后碎纸片排列序号Q 。 3.1.3 模型一的求解
附件1的求解
(1)运行自动拼接源程序代码,得到
K =[13 11 14 4 9 3 15 2 5 6 8 12 17 10 7 16 1]
(2)第一张图为I9,最后一张图为I7,在数组K 中1~6则为图i1~i6,7为图I8,8~16则为图I10~I18,在Matlab 中运行
tu=[i9 i15 i13 i16 i4 i11 i3 i17 i2 i5 i6 i10 i14 i19 i12 i8 i18 i1 i7]; imshow(tu)
即可得到拼接复原图见附录图1,根据运行结果得到复员后碎纸片的排列序号见表1。
附件2的求解
(1)运行自动拼接源程序代码,得到 Q =[5 3 6 14 17 10 1 4 2 8 12 9 7 11 13 16 15]