数学建模竞赛B题论文-算法与纸片拼接复原模型的建立

上传人:aa****6 文档编号:29248716 上传时间:2018-01-23 格式:DOC 页数:18 大小:1.07MB
返回 下载 相关 举报
数学建模竞赛B题论文-算法与纸片拼接复原模型的建立_第1页
第1页 / 共18页
数学建模竞赛B题论文-算法与纸片拼接复原模型的建立_第2页
第2页 / 共18页
数学建模竞赛B题论文-算法与纸片拼接复原模型的建立_第3页
第3页 / 共18页
数学建模竞赛B题论文-算法与纸片拼接复原模型的建立_第4页
第4页 / 共18页
数学建模竞赛B题论文-算法与纸片拼接复原模型的建立_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《数学建模竞赛B题论文-算法与纸片拼接复原模型的建立》由会员分享,可在线阅读,更多相关《数学建模竞赛B题论文-算法与纸片拼接复原模型的建立(18页珍藏版)》请在金锄头文库上搜索。

1、1算法与纸片拼接复原模型的建立摘要传统上,拼接复原工作需由人工完成,准确率较高,但效率很低。特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。随着计算机技术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。要完成破碎纸片的复原工作,需要对附件 1 中所给出的信息中找出所有纸片之间的关联。首先,我们要对这些纸片输入 MATLAB 软件利用 imread 函数进行初步处理读取 19 张纸片的数据矩阵。其次,利用纸张页边距这一特点对灰度值进行聚类分析可以选出一张纸片作为第一张基础拼接纸片。最后,通过对前一张纸片矩阵的最右侧的一列数据和其余纸片矩阵最左侧的一列数据求吻合程度 的值,通过

2、比较 的大小选出方差最小的一张纸片,并将其左侧与前一张纸ss片右侧拼接完成。以此类推直到最后一张纸片也完成拼接复原工作。最后由人工检验复原的结果,包括文字有无缺失、语句是否通顺等看拼接结果是否正确。需要找出附件 3 中所给出的碎纸片之间的关联。首先,将附件 3 中的纸片图片录入 MATLAB 软件,利用 imread 函数进行初步处理读取 209 张纸片的数据矩阵。其次,利用纸张具有页边距的特点对灰度值进行聚类类分析,找出左侧留白的碎纸片,利用问题一中的方法将所有最左边碎纸片按顺序拼接复原好。接下来,将这一列作为基础拼接列,用基础拼接列的第一张纸片的数据矩阵的最右侧的一列数据和其余纸片矩阵最左

3、侧的一列数据求吻合程度 的值,通过s比较 的大小选出方差最小的一张纸片,并将其左侧与前一张纸片右侧拼接完s成。以此类推直到最后一张纸片也完成拼接复原工作。最后,由人工检验复原的结果,包括文字有无缺失、语句是否通顺等看拼接结果是否正确。随着问题难度的加深,在前两问的基础上问题三不仅有纵向和横向的切割方法还涉及到英文文件的正反两面打印(一种情况是两面文字方向相同,另一种情况是两面的文字方向相反)的情况。一方面,给拼接工作带来了很大的难度,另一方面正反面的粉碎情况可以对最后的拼接结果进一步检验。通过对英语 26个字母的书写格式进行分析,将附件 5 中的 418 张纸片录入 MATLAB 软件关键词:

4、聚类分析,欧氏距离,旅行商2一、 问题重述随着计算机技术的不断发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。我们需要对以下问题进行讨论:1. 对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切) ,建立碎纸片拼接复原模型和算法,并针对附件 1、附件 2 给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果以图片形式及表格形式表达。2. 对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件 3、附件 4 给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干

5、预的时间节点。复原结果表达要求同上。3. 上述所给碎片数据均为单面打印文件,从现实情形出发,还可能有双面打印文件的碎纸片拼接复原问题需要解决。附件 5 给出的是一页英文印刷文字双面打印文件的碎片数据。请尝试设计相应的碎纸片拼接复原模型与算法,并就附件 5 的碎片数据给出拼接复原结果,结果表达要求同上。二、 问题分析(一) 问题一本题我们以附件 1 为例。要完成破碎纸片的复原工作,我们需要对附件 1中所给出的一些看似毫无头绪的信息中找出所有纸片之间的关联。由于需要按顺序从已经确定的第一张碎纸片开始依次匹配相邻的碎纸片,不仅需要建立一个循环的算法,考虑到如果是一个汉字被裁开的话,左右笔画的连续性会

6、使得两边像素点的数值基本相似,做可能相邻边缘矩阵的数值差的平方和后会得到一系列数值,理论上最小的数值即为复原过程中相邻的碎纸片,如果循环结果不符合要求,则有可能是出现了左右边缘都为空白的矩阵,还要在此处人工根据文字的特点排出正确的顺序。首先,我们要对这些纸片输入 MATLAB 软件利用 imread 函数进行初步处理读取 19 张纸片的数据矩阵。其次,利用纸张具有页边距的特点,可以对每个纸片的灰度值进行聚类分析选出一张纸片作为第一张基础拼接纸片。最后,通过对前一张纸片右侧矩阵的一列数据和其余纸片左侧矩阵的一列数据求纸片的吻合程度 ,通过比较吻合程度 值的大小选出 值最小的一张纸片,并将其左侧s

7、ss与前一张纸片右侧拼接完成。以此类推直到最后一张纸片也完成拼接复原工作。在复原工作中我们需要做一些人工干预工作。在读取好纸片矩阵后求算方差之间,我们需要人工选出编号为 008 的纸片作为基础拼接图片。最后的拼接复原结果还需人工通过对拼接好的内容进行核对,包括文字有无缺失、语句是否通顺等来检验复原结果是否正确。(二) 问题二3类似问题一的求解过程。本题我们以附件 3 为例。要完成破碎纸片的复原工作,我们需要对附件 3 中所给出的一些看似无关的信息中找出所有纸片之间的关联。由于需要按顺序从已经确定的纸片拼接基础列,再开始依次匹配相邻的碎纸片,不仅需要建立一个循环的算法,考虑到如果是一个汉字被裁开

8、的话,上下、左右笔画的连续性会使得四个边像素点的数值基本相似,做可能相邻边缘矩阵的数值差的平方和后会得到一系列数值,理论上最小的数值即为复原过程中相邻的碎纸片,如果循环结果不符合要求,则有可能是出现了左右边缘都为空白的矩阵,还要在此处人工根据文字的特点排出正确的顺序。首先,我们要对这些纸片输入 MATLAB 软件利用 imread 函数进行初步处理读取 209 张纸片的数据矩阵。其次,使用 MATLAB 软件对纸片灰度值进行聚类分析选出这些纸片中所有最左侧有留白的纸片作为基础拼接片段,并按照问题一中的方法将这些基础拼接片段拼接复原成基础拼接列。接着,通过对第一张基础拼接片段的数据矩阵的最右侧的

9、一列数据和其余纸片的数据矩阵的最左侧一列数据求纸片的吻合程度 ,通过比较吻合程度 值的大小选出 值最小的一张sss纸片,并将其左侧与前一张纸片右侧拼接完成。以此类推直到最后一张纸片也完成拼接复原工作。在复原工作中我们需要做一些人工干预工作。在读取好纸片矩阵后求算方差之间,我们需要人工选出编号为的纸片作为基础拼接列。最后的拼接复原结果还需人工通过对拼接好的内容进行核对,包括文字有无缺失、语句是否通顺等来检验复原结果是否正确。(三) 问题三三、 模型假设与符号说明(一)模型假设假设一:纸张粉碎机的工作性能及各项指标稳定。假设二:每张纸片都是被均匀粉碎的。假设三:每张纸片经过粉碎时没有损耗。(二)符

10、号说明纸片之间的吻合程度s四、 模型建立与求解(一) 问题一对于问题一给定的来自同一页印刷文字文件的碎纸机破碎纸片中纸片的复原工作所涉及到的问题有:纸张之间的吻合程度对拼接效果的影响,人工干预对拼接效果的影响,需要按顺序从已经确定的第一张碎纸片开始依次匹配相邻的碎纸片,不仅需要建立一个循环的算法,考虑到如果是一个汉字被裁开的话,4左右笔画的连续性会使得两边像素点的数值基本相似,例如根据编号为 007 和208 的两张纸片的两侧像素点的一些特征可以判断这两张纸片是可以完成吻合拼接的。做可能相邻边缘矩阵的数值差的平方和后会得到一系列数值,理论上最小的数值即为复原过程中相邻的碎纸片,如果循环结果不符

11、合要求,还要进行人工干预。针对以上问题我们模型的建立需要分以下步骤进行。图 1.编号为 007 与 208 的纸片拼接图以图 1.中的“民”字的拼接为例,007 右侧“民”字的灰度值和 208 左侧“民”字的灰度值为210 0 1552552552552552190 0 0 2192552552552551450 37255255220 0 1552552552552552190 0 0 2192552552552551450 37255255第一步:数据的录入。我们要对附录 1 中纸片编号为000、001、002、003、004、005、006、007、007、008、009、010、011

12、、012、013、014、015、016、017、018 的图片导入 MATLAB 软件中,利用 MATLAB 软件中的 imread 语句读成表示各个位置点的数值化矩阵,将 19 个纸矩阵按原顺序排列,组成总的数值化矩阵。第二步:选择基础纸片。利用纸张具有页边距的这一特点,使用 MATLAB 软件对每张纸片的灰度值进行聚类分析,最后我们选出了编号为 008 的纸片作为第一张基础拼接纸片。第三步:计算两张纸片的吻合程度 的值。s通过对前一张纸片右侧矩阵的一列数据和其余纸片左侧矩阵的一列数据对应相减求出对应的差平方,最后将这一列差平方累加得出 的具体值。s第四步:比较吻合程度 值的大小。s选出

13、最小的一张纸片,并将其左侧与前一张纸片右侧拼接完成。以此类s推直到最后一张纸片也完成拼接复原工作。制作程序见附录 1。5第四步:人工检验。对拼接好的内容进行核对,包括文字有无缺失、页面左右两侧是否有文字的残余、两侧留白是否合理、语句是否通顺等后得出正确的拼接图片见附录2。附件 2 中英文文件纸片的拼接复原方法同理,得出拼接图片见附录 2,附件1 的拼接顺序见表 1,附件 2 的拼接顺序见表 2.。表 1.附件 1 的拼接表008015013016004011003017002005006010014019012008018001007表 2.附件 2 的拼接表00400700300801601

14、9012001006002010014011009013015018017005根据表 1.和表 2.的信息可以很清晰的看出附件 1 和附件 2 中纸片的拼接顺序。按照此顺序人工可以轻松地将附件 1 和附件 2 中的纸片拼接复原。手工拼接复原同时也对此模型的结果做了进一步的验证。运用此方法可以高效率的处理这一类粉碎机单向粉碎纸张的拼接复原工作。(二) 问题二对于问题二,被碎纸机纵向和横向粉碎的一页印刷文字文件碎纸片中纸片的复原工作所涉及到的问题有:纸张之间的吻合程度对拼接效果的影响,人工干预对拼接效果的影响,需要按顺序从已经确定的第一张碎纸片开始依次向下匹配相邻的碎纸片形成一列基础拼接列,不仅

15、需要建立一个循环的算法,考虑到如果是一个汉字被裁开的话,上、下、左、右笔画的连续性会使得四边像素点的数值基本相似,做可能相邻边缘矩阵的数值差的平方和后会得到一系列数值,理论上最小的数值即为复原过程中相邻的碎纸片,如果循环结果不符合要求,还要进行人工干预。针对以上问题我们模型的建立分以下几步:第一步:数据的录入。我们要对附录 3 中纸片编号从 000 到 208 的图片导入 MATLAB 软件中,利用MATLAB 软件中的 imread 语句读成表示各个位置点的数值化矩阵,将 209 个纸矩阵按原顺序排列,组成总的数值化矩阵。第二步:每一行的拼接。1.确定纸张四周的图片利用纸张具有页边距的这一特

16、点,使用 MATLAB 软件对每张纸片的灰度值矩阵进行分析,通过排列每张图片的四周灰度值整列全为 255 的行数,确定其四周的页边距。然后对不同位置的页边距进行排序,可以找出所有图片中最左侧的十一张图片,以及最右侧的十一张图片。同样,可以用此办法找出最上边和最下边的各十九张图片。然后通过相邻两边的共有图片确定四个拐角处的图片。62.对所有纸条进行大致分组通过对最左侧图片的灰度值矩阵进行分析,可以大致找出行首图片中行间距的大致位置,然后通过对每一张图片检索,找出对应位置灰度值全为 255 的所有图片,归结为一类。同样用此办法,可以确定,每一行的大概分类。3.对每一行的排序对第一列的所有图片进行分析,通过 matlab 确定第一列图片的灰度值的最后一列。比较这一行所有图片灰度值的第一列,通过欧氏距离确定相似度,然后对相似度进行排序,取数值最小者为该行的第二个图片。然后通过第二张图片的最后一列确定第三张图片直至某张图片灰度值最后一列全为 255。同时通过最后一列的图片的灰度值确定前一张图片直至某张图片灰度值第一列全为255。这样就确定了该图片

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号