2013年数学建模碎纸片的拼接程序
- 格式:pdf
- 大小:4.32 MB
- 文档页数:32
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,依据图像预处理理论,通过matlab程序处理图像,将图像转化成适合于计算机处理的数字图像,进行灰度分析,提取灰度矩阵。
对于仅纵切的碎纸片,根据矩阵的行提取理论,将。
建中的任一列与矩阵值,序列号。
将程序进行循环操作,得到最终的碎片自动拼接结果。
、;分别作为新生成的矩阵、。
,将矩阵中的任一列分别与矩阵中每一列代入模型,所得p值对应的值即为横排序;将矩阵中的任一行分别于矩阵中的任一行代入模型,所得q值对应的值即为列排序。
循环进行此程序,得计算机的最终运行结果。
所得结果有少许误差,需人工调制,更正排列顺序,得最终拼接结果。
针对问题3,基于碎纸片的文字行列特征,采用遗传算法,将所有的可能性拼接进行比较,进行择优性选择。
反面的排序结果用于对正面排序的检验,发现结果有误差,此时,进行人工干预,调换碎纸片的排序。
【关键词】:灰度矩阵欧式距离图像匹配自动拼接人工干预一、问题重述破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。
传统上,大量的纸质物证复原工作都是以人工的方式完成的,准确率较高,但效率很低。
特别是当碎片数量巨大,人工拼接不但耗费大量的人力、物力,而且还可能对物证造成一定的损坏。
随着计算机技术的发展,人们试图把计算机视觉和模式识别应用于碎纸片复原,开展对碎纸片自动拼接技术的研究,以提高拼接复原效率。
试讨论一下问题,并根据题目要求建立相应的模型和算法:、附件4(1)(2)(3)(4)纸片的自动拼接。
问题1:根据图像预处理理论,通过程序语言将图像导入matlab程序,对图像进行预处理,将碎纸片转换成适合于计算机处理的数字图像形式,并对数字图像进行灰度分析,提取灰度矩阵。
承诺书我们仔细阅读了《全国大学生数学建模竞赛章程》和《全国大学生数学建模竞赛参赛规则》(以下简称为“竞赛章程和参赛规则”,可从全国大学生数学建模竞赛网站下载)。
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛章程和参赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛章程和参赛规则,以保证竞赛的公正、公平性。
如有违反竞赛章程和参赛规则的行为,我们将受到严肃处理。
我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开展示(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等)。
我们参赛选择的题号是(从A/B/C/D中选择一项填写): B我们的参赛报名号为(如果赛区设置报名号的话):所属学校(请填写完整的全名):楚雄师范学院参赛队员(打印并签名) :1. 陈志明2. 施明杰3. 阮秀婷指导教师或指导教师组负责人(打印并签名):(论文纸质版与电子版中的以上信息必须一致,只是电子版中无需签名。
以上内容请仔细核对,提交后将不再允许做任何修改。
如填写错误,论文可能被取消评奖资格。
)日期: 3013 年 9 月 16 日赛区评阅编号(由赛区组委会评阅前进行编号):编号专用页赛区评阅编号(由赛区组委会评阅前进行编号):全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):碎纸片的拼接复原算法及MATLAB实现摘要:对于只有纵切的情形,文章通过比较当前待拼碎片与剩余碎片的信噪比psnr[1,3,4]的值来确定两碎片是否为邻接碎片;拼接算法首先连续调用右拼函数直到拼接到原图右边界,然后连续调用左拼函数直到拼接到原图左边界,从而得到整幅复原图像;对于单面纵横交错切的情形,文章对首先采用纵切拼接算法将碎片拼接成多幅横条图片,然后将各横条图片矩阵转置[2],再次采用纵切拼接算法拼接;两种情形的拼接,都存在人为参与;实验证明,我们的算法对纵切情形是有效的,对纵横切情况是可行的。
2013年数学建模b题纸片拼接2013年数学建模B题是关于纸片拼接的问题。
以下是该题的问题描述和解题方法的一个简要说明。
问题描述:问题要求将一张长为L1、宽为W1的纸片与另一张长为L2、宽为W2的纸片进行拼接,形成一个平面图案。
拼接的要求是两张纸片不能重叠,且只能通过边缘进行拼接。
问是否存在一种拼接方式满足要求,并给出拼接的方法。
解题方法:1. 首先,我们需要明确问题的约束条件。
根据题目的描述,可以得到以下约束条件:- 拼接后的平面图案的长为L1+L2或W1+W2- 拼接后的平面图案的宽为W1或W2- 拼接的方式有两种情况:将L1与L2拼接,或将W1与W2拼接2. 根据约束条件,我们可以列出两种情况的拼接方式,并通过计算判断是否满足要求。
具体步骤如下:- 情况一:将L1与L2拼接。
这种情况下,需要比较W1和W2的大小。
若W1>=W2,则满足要求,可以得到拼接的方法;若W1<W2,则需要继续考虑情况二。
- 情况二:将W1与W2拼接。
这种情况下,需要比较L1和L2的大小。
若L1>=L2,则满足要求,可以得到拼接的方法;若L1<L2,则无法满足要求。
3. 根据以上步骤,可以得出结论:若情况一满足,将L1与L2拼接;若情况二满足,将W1与W2拼接;若两种情况都不满足,则无法完成纸片的拼接。
注意事项:- 在计算过程中需要注意单位一致性。
- 在判断拼接条件时,需要考虑等号情况。
以上是对2013年数学建模B题纸片拼接问题的简要说明。
具体的计算步骤和具体数值计算需要根据实际题目给出的数值进行具体分析和计算。
承诺书我们认真阅读了《全国大学生数学建模比赛章程》和《全国大学生数学建模比赛参赛规则》(以下简称为“比赛章程和参赛规则” ,可从全国大学生数学建模比赛网站下载)。
我们完好理解,在比赛开始后参赛队员不可以以任何方式(包含电话、电子邮件、网上咨询等)与队外的任何人(包含指导教师)研究、议论与赛题有关的问题。
我们知道,剽窃他人的成就是违犯比赛章程和参赛规则的,假如引用他人的成就或其余公然的资料(包含网上查到的资料),一定依据规定的参照文件的表述方式在正文引用途和参照文件中明确列出。
我们郑重承诺,严格恪守比赛章程和参赛规则,以保证比赛的公正、公正性。
若有违犯比赛章程和参赛规则的行为,我们将遇到严肃办理。
我们受权全国大学生数学建模比赛组委会,可将我们的论文以任何形式进行公然展现(包含进行网上公示,在书本、期刊和其余媒体进行正式或非正式发布等)。
我们参赛选择的题号是(从A/B/C/D 中选择一项填写): B我们的参赛报名号为(假如赛区设置报名号的话):所属学校(请填写完好的全名):楚雄师范学院参赛队员(打印并署名 ) : 1.陈志明2.施明杰3.阮秀婷指导教师或指导教师组负责人(打印并署名 ):(论文纸质版与电子版中的以上信息一定一致,不过电子版中无需署名。
以上内容请认真查对,提交后将不再同意做任何改正。
如填写错误,论文可能被撤消评奖资格。
)日期: 3013年9月16日赛区评阅编号(由赛区组委会评阅行进行编号):编号专用页赛区评阅编号(由赛区组委会评阅行进行编号):赛区评阅记录(可供赛区评阅时使用):评阅人评分备注全国一致编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅行进行编号):碎纸片的拼接还原算法及MATLAB实现纲要:关于只有纵切的情况,文章经过比较目前待拼碎片与节余碎片的信噪比psnr[1,3,4]的值来确立两碎片能否为毗邻碎片;拼接算法第一连续调用右拼函数直到拼接到原图右界限,而后连续调用左拼函数直到拼接到原图左界限,进而获得整幅还原图像;关于单面纵横交织切的情况,文章对第一采纳纵切拼接算法将碎片拼接成多幅横条图片,而后将各横条图片矩阵转置[2],再次采纳纵切拼接算法拼接;两种情况的拼接,都存在人为参加;实考证明,我们的算法对纵切情况是有效的,对纵横切状况是可行的。
2013年数学建模b题纸片拼接1. 引言2013年数学建模比赛中的B题,是一道关于纸片拼接的问题。
纸片拼接这一主题,在数学建模的题目中并不常见,但却涉及了许多有趣的数学和几何问题。
在接下来的文章中,我将从不同的角度和深度来探讨这一主题,希望能够对你的理解和思考有所启发。
2. 纸片拼接的基本概念让我们来了解一下纸片拼接的基本概念。
在这个问题中,我们需要将大量的纸片按照一定的规则进行拼接,以得到一个特定的形状或图案。
这涉及到对纸片的形状、尺寸和拼接方式的研究和分析。
还需要考虑到纸片的变形和叠放等因素,这是一个具有挑战性的问题。
3. 纸片拼接的数学模型在解决纸片拼接的问题时,我们需要建立相应的数学模型来描述和分析。
这包括对纸片的几何形状进行建模,考虑到其尺寸、边界和变形等因素;同时需要建立拼接规则和约束条件,以确保拼接的合理性和有效性。
通过建立数学模型,可以更好地理解纸片拼接问题的本质,并为后续的求解和优化提供基础。
4. 深入探讨纸片拼接的几何特性在纸片拼接的过程中,我们不仅需要考虑到其形状和尺寸,还需要深入研究其几何特性。
这涉及到对纸片的曲率、折叠和叠放等几何特征的分析,以便更好地理解和控制拼接的过程。
还需要考虑到纸片的叠放和叠合时可能出现的奇异现象,这对于拼接的成功至关重要。
5. 数学建模与实际应用让我们来谈谈纸片拼接的数学建模与实际应用。
纸片拼接这一看似抽象的问题,实际上与现实生活中的许多工程和制造过程有着密切的联系。
在纺织、纸品和航空航天等领域,都存在着类似的拼接和叠放问题。
通过对纸片拼接问题的研究和建模,可以为这些实际应用提供理论支持和技术指导。
6. 总结回顾通过以上的探讨,我们可以看到,纸片拼接这一看似简单的问题,实际上涉及到许多有趣的数学和几何问题。
从纸片的基本概念、数学建模到几何特性和实际应用,我们可以更加全面、深刻和灵活地理解这一主题。
我个人认为,纸片拼接问题不仅具有学术研究的价值,还具有实际应用的潜力,希望能够引起更多人的关注和研究。
精心整理碎纸片的拼接复原【摘要】:碎纸片拼接技术是数字图像处理领域的一个重要研究方向,把计算机视觉和程序识别应用于碎纸片的复原,在考古、司法、古生物学等方面具有广泛的应用,具有重要的现实意义。
本文主要结合各种实际应用背景,针对碎纸机绞碎的碎纸片,基于计算机辅助对碎纸片进行自动拼接复原研究。
针对问题1,依据图像预处理理论,通过matlab程序处理图像,将图像转化成适合于计算机处理的数字图像,进行灰度分析,提取灰度矩阵。
对于仅纵切的碎纸片,根据矩阵的行提取理论,将每个灰度矩阵的第一列提取,作为新矩阵,提取每个灰度矩阵的最后一列,生成新矩阵。
建立碎纸片匹配模型:将矩阵中的任一列与矩阵中的每一列带入模型,所得p值对应的值,即为所拼接的碎片序列号。
将程序进行循环操作,得到最终的碎片自动拼接结果。
针对问题2,首先将图像信息进行灰度分析,提取灰度矩阵。
基于既纵切又横切的碎纸片,根据矩阵的行列提取理论,分别提取每个灰度矩阵的第一列和最后一列,分别生成新矩阵、;提取所有灰度矩阵的第一行和最后一行,分别作为新生成的矩阵、。
由于纸质文件边缘空白处的灰度值为常量,通过对灰度矩阵的检验提取,确定最左列的碎纸片排序。
在此基础上,采用从局部到整体,从左到右的方法,建立匹配筛选模型:,将矩阵中的任一列分别与矩阵中每一列代入模型,所得p值对应的值即为横排序;将矩阵中的任一行分别于矩阵中的任一行代入模型,所得q值对应的值即为列排序。
循环进行此程序,得计算机的最终运行结果。
所得结果有少许误差,需人工调制,更正排列顺序,得最终拼接结果。
针对问题3,基于碎纸片的文字行列特征,采用遗传算法,将所有的可能性拼接进行比较,进行择优性选择。
反面的排序结果用于对正面排序的检验,发现结果有误差,此时,进行人工干预,调换碎纸片的排序。
【关键词】:灰度矩阵欧式距离图像匹配自动拼接人工干预一、问题重述破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。
基于灰度像素理论的碎纸片拼接方法摘要常规的二维碎片拼接技术一直受到科研领域重视,它在司法鉴定、文物修复、图像处理等领域有着广泛的应用。
本文研究的是二维碎片拼接技术中最典型的文档类碎纸片拼接问题。
基于文档纸片色彩明确、方向一致、无重叠等特点,利用灰度理论对问题作出解决。
通过图形扫描得到图像,然后通过二值化,Sobel[]3梯度算进行预处理,并运用皮尔逊相关性度量及方差分析算法进行匹配,以实现对纸片进行还原。
本文通过MATLAB程序模型,以及图片像素灰度理论实现文档碎片的重新拼接.对于问题1,应用图像处理技术中的灰度理论建立了灰度模型I.在对得到灰度模型进行Sobel梯度边缘化预处理的方法进行模型改进,建立了边缘灰度模型II。
然后借助于皮尔逊相关系数算法和MATLAB软件,对附件中所提供的碎片进行排列拼接.对于问题2,采用化归思想,将二维问题渐变为一维问题。
首先归纳碎片特征运用MATLAB软件对碎片进行同行分类,得到11行19列的元素;采用方差分析算法和人工干预对各行中元素进行排列,得到11条横切的图形;采用方差分析算法和人工干预对其进行排列,得以还原。
本文的亮点在于对各行中元素采用方差分析算法进行左侧到右侧匹配后,同时增加了右侧到左侧的匹配检验,大大减少了人工干预的工作.关键字:灰度理论;皮尔逊相关系数算法;Sobel梯度边缘化;方差分析算法;人工干预一、问题的重述问题一、对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原.如果复原过程需要人工干预,请写出干预方式及干预的时间节点。
复原结果以图片形式及表格形式表达。
问题二、对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。
如果复原过程需要人工干预,请写出干预方式及干预的时间节点。
承诺书我们仔细阅读了《全国大学生数学建模竞赛章程》和《全国大学生数学建模竞赛参赛规则》(以下简称为“竞赛章程和参赛规则”,可从全国大学生数学建模竞赛网站下载)。
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛章程和参赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛章程和参赛规则,以保证竞赛的公正、公平性。
如有违反竞赛章程和参赛规则的行为,我们将受到严肃处理。
我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开展示(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等)。
我们参赛选择的题号是(从A/B/C/D中选择一项填写):B我们的参赛报名号为(如果赛区设置报名号的话):所属学校(请填写完整的全名):吉林医药学院参赛队员(打印并签名):1.徐曦2.贾赟光3.武松浩指导教师或指导教师组负责人(打印并签名):吴希(论文纸质版与电子版中的以上信息必须一致,只是电子版中无需签名。
以上内容请仔细核对,提交后将不再允许做任何修改。
如填写错误,论文可能被取消评奖资格。
)日期:2013年09月16日赛区评阅编号(由赛区组委会评阅前进行编号):编号专用页赛区评阅编号(由赛区组委会评阅前进行编号):赛区评阅记录(可供赛区评阅时使用):评阅人评分备注全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):碎纸片的拼接复原摘要本文通过对图片像素点灰度值的分析,研究碎纸片的拼接复原。
针对问题一,利用Matlab 软件求出附件1、2图片的像素点灰度值分布矩阵,提取每张图片的左右边缘的灰度值向量,根据图片像素点灰度值的不同,并据此建立spearman 相关系数模型[1]2361i s d n nρ=--∑利用SPSS 对边缘灰度值进行相关性分析,根据相关系数的大小得到两两匹配的纸片对,采用人工干预的方式将纸片左右边缘逐次进行拼接,得到附件1、附件2图片拼接的顺序,具体结果见表3、表5:表3附件1拼接顺序表5附件2拼接顺序针对问题二,在问题一的基础上,利用Matlab 软件求出附件3、4图片边缘像素点灰度值分布矩阵,提取每张图片的上、下、左、右边缘的灰度值向量,由于初始数据庞大,运用逐一比较像素点灰度值的思想设计算法,结合C 语言设计程序[2],实现快速拼接功能,得到附件3、附件4图片拼接的顺序,见正文表6、表7,此处列举部分数据,如下所示:针对问题三,在问题二的基础上,利用Matlab 软件求出附件5图片边缘像素点灰度值分布矩阵,提取每张图片的上、下、左、右边缘的灰度值集合,从解决问题的实际角度出发,对于双面打印文件,运用特殊点灰度值比较法设计算法,结合C 语言设计程序,实现拼接功能,得到附件5图片拼接顺序,见正文表8、表9。
此处列举部分数据,如下所示:关键词:像素点灰度值相关性分析逐一比较法C 语言8141215310216145913181171706362715181151913108121417164一问题重述传统的拼接复原工作需由人工完成,准确率较高,但效率很低。
当碎片数量巨大,人工拼接很难在短时间内完成任务。
分析给出的碎纸片,建立碎纸片拼接复原模型,提高拼接效率。
二问题分析2.1纵切单面纸片的复原根据附件1、附件2给出的图片,利用Matlab对图片像素点的灰度值进行提取,得到每张图片左右边缘的像素点灰度值,见附录1,建立spearman系数模型,利用SPSS 求解两条边缘灰度值的spearman系数,得到相关系数,根据相关系数大小提取匹配度高的两张图片,逐次拼接,得到碎纸片复原图。
2.2既纵切又横切单面纸片的复原由于图片为既纵切又横切的碎纸片,在问题一的基础上,根据附件3、附件4给出的图片,利用Matlab对图片像素点的灰度值进行提取,得到每张图片上、下、左、右边缘的像素点灰度值,运用逐一比较寻找最佳目标的思想设计算法,先横向拼接图形,再进行纵向拼接。
先确定一张纸片,将其左、右边缘与其余纸片的边缘进行匹配,找到与其匹配度最佳的左、右两侧纸片,同理可确定其上下两侧纸片,依据此算法编写C程序,实现图片的拼接功能。
2.3既纵切又横切双面纸片的复原在问题二的基础上,根据附件5给出的图片,利用Matlab对图片像素点的灰度值进行提取,得到每张图片上、下、左、右边缘的像素点灰度值,对于双面纸片拼接问题,运用灰度值比较法,取边缘特殊点灰度值进行匹配,找到与之匹配的纸片,同时标记下已经被查找过的图片,减小循环次数。
设计算法并编写C程序实现拼接功能。
三变量说明,I J:图片的标号,l r:图片的左边缘和右边缘Ir:图片I右边缘像素点灰度值的向量J:图片J左边缘像素点灰度值的向量l四模型准备对于形状大小相同的纸片,唯一区分纸片的标志就是边缘字迹断线,本文基于图片像素点的灰度值,对碎纸片进行研究,故要提取给出图片边缘像素点的灰度值,下面给出灰度值的提取步骤:(以附件1中000-009图片左边缘为例)(1)将图片文件读入Matlab中,使用Imread()函数[4](源程序见附录2)(2)得到所需边缘像素点的灰度值集合,选取部分数据,见表1表1部分图片左边缘像素点灰度值000001002003004005006007008009255255255255255255255255025525525525525525525525525552552552552552552552552552552422552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552552555425525525524725525525525520902552552553255255255255002552552559225525525525500255255255255255255255255065255255195255255255255255252072552551125525525525525517125525525502552552552552552552552552550255255255255255255255255255025525525525525525520255255025525525525525525589255255025525525525525525525525525501922552552552552552552552550025525525525525525525525501202552552552552552552552550255255…………………………255255255255255255255255100255255255255255255255255255220255按以上步骤对附件1至5中给出的图片进行处理。
五模型的建立与求解5.1纵切单面纸片复原模型的建立与求解分析根据附件一、二给出的纵切碎纸片,利用Matlab 提取图片边缘像素点的灰度值(步骤在模型准备中已给出),将字迹断线转化为灰度值的变化关系,建立基于灰度值的spearman 相关系数模型,利用SPSS 求解各图片之间左右两边缘灰度值的相关性,根据相关性大小找出互相匹配的相邻纸片。
5.1.1建立基于灰度值的spearman 相关系数模型我们选择计算两图片间的匹配度,以相关性指标的大小来衡量匹配度的大小,例如,以图片,I J 为例,若Ir 与l J 的相关性很大,则I 右边缘与J 左边缘的匹配度较大,即两图片的连接顺序为I J →。
Spearman 相关系数公式如下:2361i s d n nρ=--∑(1)0,6r l 0.92310,21r l 0.9161,4r l 0.84411,7r l 0.8522,16r l 0.93412,15r l 0.813,10r l 0.8613,18r l 0.8724,5r l 0.81714,12r l 0.8325,9r l 0.86315,31r l 0.97,17r l 0.88316,1r l 0.9098,14r l 0.76617,0r l 0.8799,13r l0.92818,11r l0.8030,5r l 0.89610,8r l 0.8951,9r l 0.91611,0r l 0.6962,7r l 0.82412,14r l 0.9413,6r l 0.79813,10r l 0.8335,1r l 0.85914,17r l 0.7996,2r l 0.80715,18r l 0.8357,15r l 0.85916,4r l 0.8378,12r l 0.83817,16r l 0.9159,13r l0.83318,11r l0.861根据表4,采用人工干预的方式,对图片按左右边缘的顺序依次排列,得到拼接结果如下:表5附件2拼接顺序通过建立spearman 系数模型,利用相关系数比较两边缘匹配度的大小,解决了附件1和附件2的拼接问题,但此模型对于大规模的问题应用性较差,因此,我们在前面思想的基础上,利用C 语言编程,以实现对于大规模问题的求解。
5.1.2.1设计算法设计思路:本题基于通过比对各纸片左右边缘像素特性将纸片拼一张完整的图。
原理如图1所示:B<-->A、C、D、E⇓A B C⇓A B C D E图1具体算法如下:S1:提取所有纸片左右边缘像素点的灰度值,建立纸片左、右边缘的灰度值集合。
S2:选取某张纸片为基纸片,其左右边缘为待配准边缘,未被标记的纸片的左右边缘为配准边缘。
S3:将待配准边缘与配准边缘的左、右边缘像素点灰度值比较,找出与待配准边缘匹配度最高的配准边缘,从而确定基纸片的左右两侧纸片,并标记基纸片。
S4:以基纸片的一侧纸片作为新的基纸片,执行S2,若所有纸片全被标记,则执行S5。
S5:输出正确的拼接顺序,算法结束。
5.1.2.2编写程序采用C语言编写程序,具体程序代码如下:(以附件一为例)#include<stdio.h>#include<math.h>#include<stdlib.h>/*int pd(int x,int*d){int j,t,dz;dz=d;for(j=0;j<1979;j++)if(*(d+j)==255)t++;if(t>1900)return(0);elsereturn(1);}*/void main(){int a[1980][19],b[1980][19];int i,j;int n,s,d=0,m;FILE*fp1,*fp2;Char namein1[80]="C:\\Users\\Administrator\\Desktop\程序1\\Text1L.txt";Char namein2[80]="C:\\Users\\Administrator\\Desktop\程序1\\Text1R.txt";fp1=fopen(namein1,"r");while(!feof(fp1)){for(i=0;i<1979;i++)for(j=0;j<19;j++){fscanf(fp1,"%d",&a[i][j]);}} fp2=fopen(namein2,"r");while(!feof(fp2)){for(i=0;i<1979;i++)for(j=0;j<19;j++){fscanf(fp2,"%d",&b[i][j]);}//左查找d=0;do{i=d;s=2000;for(n=0;n<19;n++){if(b[0][n]==-1||n==i)continue;else{m=0;for(j=0;j<1980;j++){if(abs(a[j][i]-b[j][n])>=122)m++;}if(s>m){s=m;d=n;}}}b[0][d]=-1;a[0][i]=-1;printf("%d的左边是%d",i,d);} while(d!=8);printf("\n");//右查找d=0;do{n=d;s=2000;for(i=0;i<19;i++){if(a[0][i]==-1||n==i)continue;else{m=0;for(j=0;j<1980;j++){if(abs(b[j][n]-a[j][i])>=122)m++;}if(s>m){s=m;d=i;}}}a[0][i]=-1;printf("%d的右边是%d",n,d);}while(d!=6);printf("\n");fclose(fp1);fclose(fp2);}5.1.2.3运行结果程序运行结果如下:同理可得附件二的拼接结果,源程序见附录7,结果如下:通过以上的两个结果可以看出,此算法可以得出较为准确的拼接方案,同时,对于大规模的图片拼接问题,也可以进行求解,实用性较强。