碎纸片的拼接复原_数学建模二等奖论文 精品
- 格式:doc
- 大小:1.82 MB
- 文档页数:40
2013高教社杯全国大学生数学建模竞赛B题碎纸片的拼接复原首先分析问题:对于第一问分析如下对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原。
如果复原过程需要人工干预,请写出干预方式及干预的时间节点。
求matlab图像拼接程序clear;I=imread('xingshi32.bmp');if(isgray(I)==0)disp('请输入灰度图像,本程序用来处理128 *128的灰度图像!');elseif (size(I)~=[128,128])disp('图像的大小不合程序要求!');elseH.color=[1 1 1]; %设置白的画布figure(H);imshow(I);title('原图像');zeroImage=repmat(uint8(0),[128 128]);figure(H); %为分裂合并后显示的图设置画布meansImageHandle=imshow(zeroImage);title('块均值图像');%%%%%设置分裂后图像的大小由于本图采用了128像素的图blockSize=[128 64 32 16 8 4 2];%%设置一个S稀疏矩阵用于四叉树分解后存诸数据S=uint8(128);S(128,128)=0;threshold=input('请输入分裂的阈值(0--1):');%阈值threshold=round(255*threshold);M=128;dim=128;%%%%%%%%%%%%%%%%% 分裂主程序%%%%%%%%%%%while (dim>1)[M,N] = size(I);Sind = find(S == dim);numBlocks = length(Sind);if (numBlocks == 0)%已完成break;endrows = (0:dim-1)';cols = 0:M:(dim-1)*M;rows = rows(:,ones(1,dim));cols = cols(ones(dim,1),:);ind = rows + cols;ind = ind(:);tmp = repmat(Sind', length(ind), 1);ind = ind(:, ones(1,numBlocks));ind = ind + tmp;blockValues= I(ind);blockValues = reshape(blockValues, [dim dim numBlocks]);if(isempty(Sind))%已完成break;end[i,j]=find(S);set(meansImageHandle,'CData',ComputeMeans(I,S));maxValues=max(max(blockValues,[],1),[],2);minValues=min(min(blockValues,[],1),[],2);doSplit=(double(maxValues)-double(minValues))>threshold;dim=dim/2;Sind=Sind(doSplit);Sind=[Sind;Sind+dim;(Sind+M*dim);(Sind+(M+1)*dim)];S(Sind)=dim;end对于第二问于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。
碎纸片的拼接复原摘要碎纸片的拼接复原是一门借助计算机,把大量碎纸片重新拼接成初始纸张的技术。
针对问题一,本文首先利用碎纸片图像灰度矩阵的边缘矩阵,建立了两个碎纸片之间的匹配度函数,求得了每一张图片之间左右边缘匹配度矩阵。
然后根据左边边缘位置的碎片的左边空白部分最多的特点,确定了左边位置的碎纸片。
接着根据拼接碎纸片的拼接复原时,所有碎纸片匹配度之和取极大值的原则,采用贪心算法,得到了所有碎纸片的初始位置,拼接复原了附件1和附件2中纸片。
针对问题二,由于附件3碎片数量太多,并且碎片的拼接复原,是一个以碎纸片总匹配度为目标函数的组合优化问题。
所以本文采用遗传算法将碎纸片的编号作为基因,并将基因均匀分成19段,按顺序每一段对应一个初始纸片列位置,进行了求解。
然后,根据边缘碎纸片某些边的空白部分多的特征,对初始基因进行了优化。
接着,根据碎纸片的黑色像素密度不同的特点,将碎纸片分成三类,根据同类纸片优先匹配的原则,对遗传算法的运行过程进行了优化,拼接复原了附件3和附件4中纸片。
针对问题三,随着碎纸片量的增多,计算量急剧增加。
在上述拼接复原碎纸片的基础上,又引进了同行位置碎纸片的上部(或下部)空白位置宽度相近的聚类思想。
先对每个类内部拼接,在合并所有类并做一次整体拼接。
由于时间有限,我们未能完成最后一次的整体的拼接,但我们会在比赛后继续探究。
关键词:边缘矩阵匹配度函数遗传算法聚类一、问题重述碎片拼接实际用途已经越来越广泛,传统上拼接复原工作由人工完成,碎片拼接的准确率较高,但效率很低。
并且当碎片数量很大时,人工短时间内拼接出来几乎是不可能的。
所以开发碎纸的拼接技术,以提高拼接复原效率已成为越来越多人的期望。
现在,在碎纸片是规则的情况下,题目要求我们在以下条件建立碎纸片拼接复原模型和算法。
1.来自同一页印刷文字文件(中文、英文各一页)的碎纸机破碎纸片(仅纵切)拼接复原,并将附件1和附件2复原。
2.对碎纸机既纵切又横切文件的情形,将碎纸片拼接完整。
碎纸片的拼接复原摘要本文研究了碎纸片的复原问题。
对已有的碎纸片,我们利用Matlab求碎纸片边各侧边线的灰度值,通过最小偏差平方和法进行碎纸片间的相互匹配,中间加入人工干预进行筛选,将附件中的碎纸片全部还原。
之后,我们将该方法进行推广,可用以处理更复杂形状碎图片的的还原问题。
对问题一:首先假定附件一所给仅纵切的碎纸片的行文方向与各碎纸片两侧边线垂直,在此基础上先人工干预,根据碎纸片的剪切规范,甄选出原始图片的第一张和最后一张碎纸片,编号分别为008和006。
其次通过Matlab求出图片边线处各小网格点的灰度值,采用最小偏差平方和法,对编号008碎片右边线处的灰度值和其它碎纸片的左边线处的灰度值进行对应网格点的数值匹配,找到最匹配的碎纸片。
附件二碎片的处理进行了类似处理,给出的复原图片见附表4。
对问题二:附件三文本既纵切又横切,同样我们假设所给附件三中碎纸片的行文方向与碎纸片的上下左右边线分别平行或垂直。
在问题一的算法基础上,通过Matlab求出各碎纸片的4条边线的边界灰度值,然后利用最小偏差平方和法,对上下左右四边进行灰度值匹配,当结果多个时,我们进行了人工干预。
附件四依照附件三的方法类似处理,最终的复原见附表7和附表9。
对问题三:附件五中的图片既纵切又横切而且是正反面。
我们参照问题一、二的处理方法,加入反面的灰度值测算,随机选择一张碎纸片与其他碎纸片进行遍历匹配,得出4张匹配的碎纸片后,以这4张碎纸片为下一起点,扩张匹配,最终给出的复原图见附表12。
为适应更一般的情形,我们在模型改进部分,给出了当碎纸片的文字行文方向与碎纸片两侧边线不垂直时的处理方法(只处理了边线为直线的情形)。
首先是通过测算出的碎纸片灰度值确定出碎纸片的边缘线,其次定出碎纸片边缘线附近网格点的灰度值,最后完成边线的的匹配。
关键词:人工干预灰度矩阵灰度值最小偏差平方和法一问题重述1.1问题背景纸片文字是人们获取和交换信息的主要媒介,尤其是在计算机技术飞速发展、数码产品日益普及的今天。
数学论文基于图像处理的碎纸片拼接数学模型分析1.问题背景目前碎纸的拼接工作大部分是靠人工的方式完成,但是当碎纸片的数量巨大的时候,要人工拼接完成就很困难了。
国内对此技术的研究主要是集中于文物碎片的自动修复、虚拟考古、故障分析以及计算机辅助设计、医学分析等领域,除此之外,破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域也有只重要的应用。
常规的碎纸片拼接方法一般是基于碎纸片的边缘的形状特征比如尖点、尖角、面积等几何特征,再进行搜索与之相匹配的纸片从而完成拼接。
但是这种基于纸片边缘几何特征的拼接方法,当存在许多边缘几何特征相似的纸片的情况下,这种拼接方法就不适用了,因此,本文重在建立一种基于纸片中文字特征的模型来完成碎纸片的拼接。
2.问题分析碎纸片自动拼接技术是图象处理与模式识别领域中的一个较新但是很典型的应用,它是通过计算机扫描和图像提取技术获取一组碎纸片的形状、颜色、文字特征等信息,然后利用计算机进行相应的处理从而实现对这些纸片自动和半自动的拼接还原。
碎纸片自动拼接技术的关键包括图像的预处理和匹配,其中预处理的目的是把碎纸片表示为适合于利用计算机处理的形式。
预处理包括图像的获取和处理,对于边界特征明显的纸片可以进行边界检测,轮廓提取和表示。
而纸片的匹配技术是碎纸自动拼接中关键之关键,即利用建立好的模型并设计出算法对纸片进行特征识别和自动拼接。
问题中的碎纸片由于具有同样的边缘几何特征,因此不能采用常规的靠提取碎片边缘尖点、尖角以及面积的方式来对不同的碎片进行区分。
对于这类边缘相似的碎纸片拼接,理想的计算机拼接过程应与人工拼接过程类似,及拼接时不但要考虑待拼接碎纸片边缘是否匹配,还要判断碎片内的字迹断线或碎片内的文字内容是否匹配,然而由于理论和技术的限制,让计算机具备类似人那种识别碎片边缘的字迹断线、以及理解碎片内文字图像含义的智能几乎不太可能。
但是,利用现有的技术,完全可以获取碎纸片内部及边缘的文字几何特征以及纸片不同部分的颜色等信息,在自动拼接时,只要寻找到具有相同边缘特征的纸片即可。
数学建模碎纸片拼接复原题目《数学建模碎纸片拼接复原:一场奇妙的探索之旅》我呀,最近在学校里遇到了一个超级有趣又超级难的事儿,那就是关于数学建模里的碎纸片拼接复原题目。
这可不是一般的题目,就像是一个超级复杂的拼图游戏,但又比普通拼图难上好多好多倍呢!咱们先来说说这个碎纸片是怎么回事吧。
想象一下,有好多好多的碎纸片,就像被大风吹散了的树叶一样,到处都是。
每一片碎纸片都像是一个小秘密,它上面只有一部分的文字或者图案。
这些碎纸片有的边缘是平滑的,有的却是弯弯曲曲的,就像不同形状的小云朵在纸上飘着。
我和我的小伙伴们刚开始看到这个题目的时候,都瞪大了眼睛,嘴巴张得能塞下一个大鸡蛋。
“这可怎么拼啊?”我的小伙伴小明忍不住叫了出来。
我也在心里直犯嘀咕,这简直就像是要把散落在地上的星星重新组合成原来的星座一样困难。
不过,我们可没有被这个难题吓倒。
我们就像一群勇敢的小探险家,准备去解开这个谜题。
我们首先想到的是从碎纸片的边缘入手。
就好比我们在搭积木的时候,先找那些有特殊形状的积木块一样。
那些边缘有独特形状的碎纸片,可能就是我们找到拼接复原方法的关键。
我拿起一片碎纸片,上面有一点点像是字母“e”的半边。
我就大声地对小伙伴们说:“你们看,这个会不会和另一片能组成一个完整的‘e’呢?”大家都围了过来,眼睛里闪烁着兴奋的光芒。
小红说:“那我们快找找看呀!”于是我们就开始在那一堆碎纸片里翻找起来。
这感觉就像是在寻宝,每一片碎纸片都可能是宝藏的一部分。
可是,找了半天,我们发现事情并没有那么简单。
有好多碎纸片的边缘看起来好像能拼接在一起,但实际上它们的内容却对不上。
这就像你以为你找到了两块合适的拼图,结果发现上面的图案根本不是一回事儿。
我有点沮丧地说:“这也太难了吧,感觉就像在黑暗里摸东西,怎么也找不到正确的方向。
”这时候,聪明的小刚说话了:“我们不能只看边缘呀,还得看看纸片上的文字或者图案的内容呢。
比如说,如果一片碎纸片上有一个单词的开头部分,那我们就得找有这个单词结尾部分的碎纸片。
承诺书我们仔细阅读了《全国大学生数学建模竞赛章程》和《全国大学生数学建模竞赛参赛规则》(以下简称为“竞赛章程和参赛规则”,可从全国大学生数学建模竞赛网站下载)。
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛章程和参赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛章程和参赛规则,以保证竞赛的公正、公平性。
如有违反竞赛章程和参赛规则的行为,我们将受到严肃处理。
我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开展示(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等)。
我们参赛选择的题号是(从A/B/C/D中选择一项填写):我们的参赛报名号为(如果赛区设置报名号的话):所属学校(请填写完整的全名):参赛队员 (打印并签名) :1.2.3.指导教师或指导教师组负责人 (打印并签名):(论文纸质版与电子版中的以上信息必须一致,只是电子版中无需签名。
以上内容请仔细核对,提交后将不再允许做任何修改。
如填写错误,论文可能被取消评奖资格。
)日期:年月日赛区评阅编号(由赛区组委会评阅前进行编号):编号专用页赛区评阅编号(由赛区组委会评阅前进行编号):赛区评阅记录(可供赛区评阅时使用):全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):基于文字特征的碎纸片拼接匹配算法【摘要】破碎文件的拼接在许多领域都有着重要的应用,现有的拼接算法主要针对边界不规则碎纸片,利用边缘形状匹配进行拼接。
基于人们的生活习惯和碎纸机的广泛使用,很多情况下文字碎片都有着规则的边界。
寻找对于边界规则的碎纸片有效快速的拼接算法是亟待解决的问题。
数学建模中的碎纸片拼接复原要点研究嘿,你是不是也碰到过这样的一种场景?某天,不小心把文件弄坏了,纸张四分五裂,散落一地。
可能是你不小心掉了咖啡,可能是好奇心作祟,忍不住撕了某个文件,结果纸片就像乱七八糟的拼图一样,飞到天上,摔在地上,结果呢?你站在碎片堆里一脸懵逼,心里想着,“这怎么办?”你可以想象那种绝望的感觉,不是么?碎纸片拼接复原这事儿,虽然听起来有点疯狂,但它不仅仅是纸张的恢复,更是一种深层次的“重生”之道,充满了无限可能,简直就像是面对一堆零散的拼图,我们总能找到适合的解决方案。
看着那些纸片,你可能会想:“这就算了吧,反正都是碎片,哪里能拼得起来?”可是,事实是,解决这些碎片的方法其实有很多,数学建模的意义不就是什么?找到正确的方法和思路,让这些破碎的片段重新组合成一个完整的整体。
是不是有点像拼乐高?看似没有头绪,但只要找对了顺序,最后一切都能完美呈现。
你看,数学建模就有点这个意思。
对,那些碎片,它们可能是无序的,是乱糟糟的,可是只要你有了对的思路、方法,一切都能恢复如初,甚至超乎你想象的完美。
要说碎纸片的拼接复原,首先就得搞清楚什么是数学建模。
你得想象它不是一个万能的机器,它是一个思维工具,它能帮你捋清楚思路,找到其中的规律。
就像拼图游戏,你眼前散落的纸片就像是一个个信息块,散得毫无规律,似乎你根本无法看到整个画面。
但如果你能从碎片中抓住一些关键的联系,就能一步步找出这些碎片的拼接顺序。
所以,复原碎纸片的过程其实是一个“解谜”过程。
这其中不仅仅是纸张本身的重组,更是一个对空间、时间甚至是规则的深刻理解。
说白了,数学建模就像是给了我们一套“万能钥匙”,用它打开看似混乱的局面,找到通往完整答案的道路。
像拼图一样,首先得弄清楚每块拼图的形状,哪个角落是直的,哪个边缘是圆的,哪些部分应该放在一起。
这里面有很多学问,一旦你把规律摸清了,整个过程就像开挂一样,轻松自如。
可能会有人觉得:“哎呀,这个太复杂了吧,怎么能从一堆碎片中找到规律呢?”其实啊,碎纸片复原的关键就在于“分析”和“推理”。
- - .2014年河北工业大学数学建模竞赛题目:图片拼接问题参赛队员信息:图片拼接问题摘要本题是图片拼接问题,主要运用MATLAB 软件对碎片上下左右边界的拼接关系进行处理。
首先是给出的图片为彩色图片,需要对图片进行灰度处理。
其次是需要提取处理后的灰度图的像素点矩阵,方便分析碎片边界之间的衔接关系。
由于问题一中给出了原始图而问题二中没有给出,所以对于问题一与问题二建立的模型是不相同的。
对于问题一,原始图片不能均等的分割出相等的16份碎片,因此使得碎片的像素不同但是差别不是很大。
因此为了方便以后的的相似度对比,我们可以将原始图以及碎片的大小利用imresize 函数进行像素改变,将原始图片尺寸改变成548364⨯,将16个碎片的大小都改变成91137⨯。
利用imread 函数提取灰度处理后的原始图片以及附件一中碎片的像素点矩阵i A ()016i =。
将原始图的像素点矩阵0A 平均分成16个子矩阵()116i a i =,将这16个子矩阵i a 与附件一中给出的16个碎片提取的矩阵i A ()116i =进行相似的对比,最终确定各碎片在原始图中的位置。
得出复原结果。
对于问题二,没有给出原始图,因此不能用与原始图比对的方法建立模型和拼接。
在这一问中首先我们通过进行像素点矩阵的提取得到i A ()116i =。
然后该问题需要进行两层筛选排序,第一层是进行行处理,得出按行分类的四类碎片集合,在进行内部行排序。
取出第i 张碎片的第一列存入矩阵a i 中;取剩余的碎片的最后一列存入到矩阵i b 中,计算a i 与i b 的相似度并从中选出最大值即为在同一层并且相邻的两张碎片,得到每层的邻接矩阵。
第二层是列处理,对第选出已排好的四层的最左碎片的第一行行向量存入i c 以及最后一行行向量存入i d 中,分别进行相似度比较,排好上下关系。
综合一二两步就可以复原图片。
关键词:MATLAB 软件 灰度处理 像素点矩阵imresize 函数 相似度 两层筛选排序 邻接矩阵1、问题重述破碎图像的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。
碎纸片的拼接复原摘要破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。
传统上,拼接复原工作由人工完成,虽准确率高,但效率很低。
特别是当碎片数量巨大,人工拼接难以完成任务。
因此随着计算机信息技术的发展,开发一个碎纸片的自动拼接技术,并建立简便的拼接复原模型,提高拼接复原效率,具有重要的实现意义。
文章通过对所给的附件图片数据进行分析研究,在综合考虑了碎片边缘的尖点特征、尖角特征、面积特征等几何特征下,我们将图片读入电脑,并进行二值化转换,考虑边界值的匹配,建立了图片边界匹配模型。
依据模型,只要边界能匹配上就可以拼接,并依次解决了如下问题。
对于问题一,由于给定图片来自同一页印刷文字文件仅纵切破碎纸片,针对附件1、附件2给出的碎片数据,建立了碎纸片拼接复原的边界匹配模型。
根据模型,我们首先对附件1、附件2中的图片用Matlab软件进行二值转化,得到一个储存图片的二值灰度矩阵,并利用边界相关性比较法判断矩阵中两边界变量是否能匹配得上,如果匹配得上就拼接在一起,按此算法,附件1、附件2中的碎纸片就能拼接成功,具体的算法结果见附录中的附件1、附件2。
对于问题二,由于碎纸机既有纵切又有横切的情形,算法的设计上要相对复杂一些,我们在前面模型的基础上进行了修改和补充,对图片的上下左右的边界都进行了边界提取。
首先,我们选将图片作二值转换,分别用矩阵进行保存,然后任迁一个,对其余的进行全程扫描,按照问题一中的边界匹配模型,逐一对其边界进行扫描匹配,其间,有些矩阵的边界数据可能一样(如空白时),我们便跳出模型,进行适当的人工干预,干预完成,再进入模型进行迭代,按此方法便可拼接成功,具体的算法结果见附录中的附件3。
对于问题三,根据现实问题中的双面打印文件的碎纸片拼接复原问题,由于多了双面的问题,在算法的设计上,我们考虑了正反两的边界匹配,在原有模型的基础上,将问题一和问题二的模型相结合,建立一个新的双面碎纸片拼接模型。
碎纸片的拼接复原摘要破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。
但是人工完成效率很低,所以引入计算机复原,计算机虽然准确率不及人工高,但是可以大大减轻工作强度。
本论文主要是对纸张形状为矩形切割规范并且纸张上的文字标准的碎纸片的拼接复原的研究。
问题一:首先根据图片的灰度矩阵找出第一张(最左侧)图片,根据小差值优先匹配依次排出相邻图片。
碎纸片复原后的顺序如附件一、二所示。
问题二:首先根据图片的灰度矩阵最左侧n列灰度值求和最大,可找出第一列(最左侧)图片,共11张。
根据“行间”的位置特征作为凝聚点进行聚类分析,将所有图片分为11类,即11行。
应用小差值优先匹配将这每行的图片进行拼接,得到11个行图片,再次应用小差值优先匹配把这11个行图片拼接成完整的图片。
碎纸片复原后的顺序如附件三、四所示。
问题三:同问题二方法一致,找出第一列(最左侧)图片(正反两面共有22张图片),将这些“行间”的位置特征作为凝聚点进行聚类分析,所有的图片分为11“大行”,将这些图片配对的正反面进行上边缘“粘接”处理,按照小差值优先匹配将这每行的粘接形成的19图片(如图一所示)进行拼接,得到11个行图片之后,再次应用小差值优先匹配把这11个行图片拼接成完整的图片。
碎纸片复原后的顺序如附件五所示。
观察上述三个问题的处理方法可知,三个问题的解决办法主干思想完全相同,都是小差值优先匹配解决,并且清晰简练。
但是由于问题的逐渐深入和复杂程度的增加,仅靠这一个简单的方法并不能在实际中解决问题,于是增加约束条件减小搜索范围,如:找出“行间”位置,并作为凝聚点进行聚类分析,然后就可以很大程度上减小出错的概率。
关键词:聚类分析、MATLAB R2012a、小差值优先匹配、灰度矩阵1、问题重述破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。
传统上,拼接复原工作需由人工完成,准确率较高,但效率很低。
特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。
随着计算机技术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。
请讨论以下问题:(1). 对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原。
如果复原过程需要人工干预,请写出干预方式及干预的时间节点。
复原结果以图片形式及表格形式表达(见【结果表达格式说明】)。
(2). 对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。
如果复原过程需要人工干预,请写出干预方式及干预的时间节点。
复原结果表达要求同上。
(3). 上述所给碎片数据均为单面打印文件,从现实情形出发,还可能有双面打印文件的碎纸片拼接复原问题需要解决。
附件5给出的是一页英文印刷文字双面打印文件的碎片数据。
请尝试设计相应的碎纸片拼接复原模型与算法,并就附件5的碎片数据给出拼接复原结果,结果表达要求同上。
2、问题分析分析本问题可知,第一问是解决此类问题的基本方法,第二问及第三问相比第一问逐渐变得复杂,但主要解决思路与第一问相同,只是在第一问的基础上需要应用其他方法缩小搜索范围,但主体方法并未改变。
针对问题一:对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法。
在MATLAB软件[1][2]中应用imread函数读取附件一及附件二中的图片,可以获得相应的灰度矩阵,从矩阵中可以清楚地看到图片中每个像素的灰度值。
观察图片边缘及灰度矩阵边缘可以得出:图片被切割后会在这张图片被切割两侧生成相似的两个列矩阵,可以猜测这两个列矩阵相似程度越高则这两张图片可以拼接复原的概率就越大。
为表示两列矩阵的相似程度,对这两列矩阵进行对应行相减取绝对值最后求和,所求得的和越小两矩阵越相似即复原概率越大。
最左边一张图片的最左侧全为空白,即最左侧矩阵所有行求和值最大,可以得到最左侧的图片,然后可以拼接出整张图片。
针对问题二:对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法。
方法一:应用第一问中的小差值优先匹配,求出所有图片边缘矩阵的对应行相减取绝对值最后求和,然后逐个比较,此时会发现由于图片小且图片中字数较少,灰度矩阵所给出的信息就会比较少,并且应用小差值优先匹配所求和会有大量数值相差不是很大图片出现,出现过多的候选项,这会对判断哪张图片可以复原产生很大的影响,甚至会出现无法选择,因为部分图片是正好没有切割文字,此时计算机是无法判断哪张可以复原的,就需要对方法一进行补充提供更多的约束条件或是进行人工干预,所以得出了以下的方法二。
方法二:此方法主体方法也是应用小差值优先匹配,针对上述出现过多的候选项情况,观察附件三及附件四中的图片会发现,虽然所给的图片小且文字数目少,但是观察可知这些图片全部大小一致但是“行间”(两行文字之间的空白处)所出现的位置是不同的,记录这几行的位置,将其余图片所生成的矩阵对比,若特殊的几行出现在相同的位置,则可将这些图片分为一“大行”(这些图片的行间距出现的位置相同)。
然后将“大行”内的图片应用第一问中的小差值优先匹配进行拼接,可将这些行拼出。
紧接着人工干预将所得的行分为11行(如果所得到的行多余11行),最后将这是11行转置成11列,按照第一问的方法进行即可拼出完整的图片。
针对问题三:该问题比第二问更复杂,但是更贴合于实际情况,即实用性很强。
仔细观察附件5中的图片,可以观察到,每张图片的a面和b面,“行间”所处的位置是相同的。
这样,可以“行间”所处的位置进行聚类,聚为11类,同第二问方法一样,先分行,然后再每行拼接出来,转置成列,应用小差值优先匹配将这11列拼接,即可得出完整图片。
但是行分完后,猜测每行有英语碎纸片,由于英文字母本身所能获得的信息量较少,且每行的图片过多,在按照第二种方法处理时,会出现过多接近值,甚至会出现错误排列,再仔细观察及阅读题意可以得出,一行图片的正面确定且结果正确时,反面是自然形成的,这样就只用到了一面数据量,若此时将两张图片的正反面以上边缘相接展开,形成高度是原高两倍的行图片,这样就会同时应用到正反两面的边缘数据,提高筛选时的准确率。
同理,在每一行都拼完后,在进行“大行”相拼的时候,可以将这个行的正反两面以右边缘相接展开,又会形成长度是原长两倍的行,也同时应用到正反两面的边缘数据提高筛选时的准确率。
得到图形如一所示:图一(正反面粘接)按照如上图片正反连接在一起后应用小差值优先匹配加以适当的人工干预,拼出完整行图片。
这样可以确定11张行图片,将这11张图片转置成11个列图片,之后再次应用小差值优先匹配拼出完整图片。
3、模型假设(1)假设所有复原图片中位于同一面的文字的行间距相同。
(2)假设页面上的文字全部是统一字体且页面排版相同。
(3)假设页面整洁干净无黑点等干扰项。
(4)第一列文字距离纸张左边缘的距离大于两相邻文字间的距离。
4、符号说明及名词定义符号说明:k: 第k张图片n: 图片具有n行I:两张图片边缘拼接能力,值越小,越容易拼接。
kA:第k张图片所对应的灰度矩阵。
),(jiAK ;KA矩阵的第i行第j列所对应的元素。
名词定义:“行间”:相邻两行文字之间固定存在的空白区域,即文字排版时所设计的隔开每行的空白区域。
它与这行中是否存在文字无关。
小差值优先匹配: 在n 张图片中取出每张图片的最左和最右侧的两个列灰度矩阵,然后任一两张图片进行下列运算:第一张图片的最右侧矩阵与第二张图片的最左侧灰度矩阵对应行相减,取绝对值最后求和,这个值越小,表明这两张图片边缘灰度值越接近,即两张图片的边缘小差值优先匹配,拼接的概率越大。
5、模型建立与求解5.1第一问模型建立与求解:对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法。
在MATLAB 软件中应用imread 函数[1] [2]读取附件一中的19张图片,得到19个灰度矩阵]),1[],,1[],,[(),,(A k m k n i b a k j i ∈∈∈。
建立目标函数为:()()()()()()⎪⎪⎩⎪⎪⎨⎧〉⎭⎬⎫⎩⎨⎧-=⎭⎬⎫⎩⎨⎧=∑∑=≤〈〈〈〈≤=≤≤)1(min )1(max 11,,...11,1211k A A k A I n i i k n i k b k k k k k k k a n i i k b k a k i (1)按算法如下:(1) 找出第一张图片: ()⎭⎬⎫⎩⎨⎧=∑=≤≤n i i k b k a A I 11,1max ·······························(2) 因为一张完整纸张上的字体第一列都会距离页面最左端有一定的距离以方便阅读和美观,所有最左边的图片最左端会对应一列全白,即所生成的矩阵第一列全为255,此时对该矩阵所有行求和会得到最大值504900。
应用以上结论,对所有图片的灰度矩阵第一列进行求和,所得值最大的即为最左边一张照片,即 ()⎭⎬⎫⎩⎨⎧=∑=≤≤n i i k b k a A I 11,1m a x 。
对所有图片的灰度矩阵第一列进行求最大值的结果为第008张图片为最左边一张图片。
(2) 找出第k 张照片:()()()()()⎭⎬⎫⎩⎨⎧-=∑=≤〈〈〈〈≤n i i k n i k b k k k k k k k a k A A I i 11,,...1211min (3)观察图片边缘及灰度矩阵边缘可以得出:图片被切割后会在这张图片被切割两侧生成两个相似的列矩阵,即这两个列矩阵相似程度越高则这两张图片可以拼接复原的概率就越大,这里将此方法命名为小差值优先匹配。
为比较图片边缘相似程度,将所有图片的最左侧及最右侧矩阵取出,即()1,i k A 和()72,i k A 对这两列矩阵进行对应行相减取绝对值最后求和,所求得的和越小两矩阵越相似,即匹配概率越大,即()()()()()⎭⎬⎫⎩⎨⎧-=∑=≤〈〈〈〈≤n i i k n i k b k k k k k k k a k A A I i 11,,...1211min (k=2)。
[3]此时和最小的即为第2张图片。
以此类推,应用程序1即可求出第3、4、5……19张图片。