1、数学建模竞赛B题论文算法与纸片拼接复原模型的建立摘要传统上,拼接复原工作需由人工完成,准确率较高,但效率很低。特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。随着计算机技术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。要完成破碎纸片的复原工作,需要对附件1中所给出的信息中找出所有纸片之间的关联。首先,我们要对这些纸片输入MATLAB软件利用imread函数进行初步处理读取19张纸片的数据矩阵。其次,利用纸张页边距这一特点对灰度值进行聚类分析可以选出一张纸片作为第一张基础拼接纸片。最后,通过对前一张纸片矩阵的最右侧的一列数据和其余纸片矩阵最左侧的一列数据求吻合程度的值,通过
2、比较的大小选出方差最小的一张纸片,并将其左侧与前一张纸片右侧拼接完成。以此类推直到最后一张纸片也完成拼接复原工作。最后由人工检验复原的结果,包括文字有无缺失、语句是否通顺等看拼接结果是否正确。需要找出附件3中所给出的碎纸片之间的关联。首先,将附件3中的纸片图片录入MATLAB软件,利用imread函数进行初步处理读取209张纸片的数据矩阵。其次,利用纸张具有页边距的特点对灰度值进行聚类类分析,找出左侧留白的碎纸片,利用问题一中的方法将所有最左边碎纸片按顺序拼接复原好。接下来,将这一列作为基础拼接列,用基础拼接列的第一张纸片的数据矩阵的最右侧的一列数据和其余纸片矩阵最左侧的一列数据求吻合程度的值
3、,通过比较的大小选出方差最小的一张纸片,并将其左侧与前一张纸片右侧拼接完成。以此类推直到最后一张纸片也完成拼接复原工作。最后,由人工检验复原的结果,包括文字有无缺失、语句是否通顺等看拼接结果是否正确。 随着问题难度的加深,在前两问的基础上问题三不仅有纵向和横向的切割方法还涉及到英文文件的正反两面打印(一种情况是两面文字方向相同,另一种情况是两面的文字方向相反)的情况。一方面,给拼接工作带来了很大的难度,另一方面正反面的粉碎情况可以对最后的拼接结果进一步检验。通过对英语26个字母的书写格式进行分析,将附件5中的418张纸片录入MATLAB软件关键词:聚类分析,欧氏距离,旅行商一、 问题重述随着计
4、算机技术的不断发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。我们需要对以下问题进行讨论:1. 对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果以图片形式及表格形式表达。2. 对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果表达要求同上。3. 上述所给碎片数据均为
5、单面打印文件,从现实情形出发,还可能有双面打印文件的碎纸片拼接复原问题需要解决。附件5给出的是一页英文印刷文字双面打印文件的碎片数据。请尝试设计相应的碎纸片拼接复原模型与算法,并就附件5的碎片数据给出拼接复原结果,结果表达要求同上。二、 问题分析(一) 问题一本题我们以附件1为例。要完成破碎纸片的复原工作,我们需要对附件1中所给出的一些看似毫无头绪的信息中找出所有纸片之间的关联。由于需要按顺序从已经确定的第一张碎纸片开始依次匹配相邻的碎纸片,不仅需要建立一个循环的算法,考虑到如果是一个汉字被裁开的话,左右笔画的连续性会使得两边像素点的数值基本相似,做可能相邻边缘矩阵的数值差的平方和后会得到一系
6、列数值,理论上最小的数值即为复原过程中相邻的碎纸片,如果循环结果不符合要求,则有可能是出现了左右边缘都为空白的矩阵,还要在此处人工根据文字的特点排出正确的顺序。首先,我们要对这些纸片输入MATLAB软件利用imread函数进行初步处理读取19张纸片的数据矩阵。其次,利用纸张具有页边距的特点,可以对每个纸片的灰度值进行聚类分析选出一张纸片作为第一张基础拼接纸片。最后,通过对前一张纸片右侧矩阵的一列数据和其余纸片左侧矩阵的一列数据求纸片的吻合程度,通过比较吻合程度值的大小选出值最小的一张纸片,并将其左侧与前一张纸片右侧拼接完成。以此类推直到最后一张纸片也完成拼接复原工作。在复原工作中我们需要做一些
7、人工干预工作。在读取好纸片矩阵后求算方差之间,我们需要人工选出编号为008的纸片作为基础拼接图片。最后的拼接复原结果还需人工通过对拼接好的内容进行核对,包括文字有无缺失、语句是否通顺等来检验复原结果是否正确。(二) 问题二类似问题一的求解过程。本题我们以附件3为例。要完成破碎纸片的复原工作,我们需要对附件3中所给出的一些看似无关的信息中找出所有纸片之间的关联。由于需要按顺序从已经确定的纸片拼接基础列,再开始依次匹配相邻的碎纸片,不仅需要建立一个循环的算法,考虑到如果是一个汉字被裁开的话,上下、左右笔画的连续性会使得四个边像素点的数值基本相似,做可能相邻边缘矩阵的数值差的平方和后会得到一系列数值
8、,理论上最小的数值即为复原过程中相邻的碎纸片,如果循环结果不符合要求,则有可能是出现了左右边缘都为空白的矩阵,还要在此处人工根据文字的特点排出正确的顺序。首先,我们要对这些纸片输入MATLAB软件利用imread函数进行初步处理读取209张纸片的数据矩阵。其次,使用MATLAB软件对纸片灰度值进行聚类分析选出这些纸片中所有最左侧有留白的纸片作为基础拼接片段,并按照问题一中的方法将这些基础拼接片段拼接复原成基础拼接列。接着,通过对第一张基础拼接片段的数据矩阵的最右侧的一列数据和其余纸片的数据矩阵的最左侧一列数据求纸片的吻合程度,通过比较吻合程度值的大小选出值最小的一张纸片,并将其左侧与前一张纸片
9、右侧拼接完成。以此类推直到最后一张纸片也完成拼接复原工作。在复原工作中我们需要做一些人工干预工作。在读取好纸片矩阵后求算方差之间,我们需要人工选出编号为的纸片作为基础拼接列。最后的拼接复原结果还需人工通过对拼接好的内容进行核对,包括文字有无缺失、语句是否通顺等来检验复原结果是否正确。(三) 问题三三、 模型假设与符号说明(一) 模型假设假设一:纸张粉碎机的工作性能及各项指标稳定。假设二:每张纸片都是被均匀粉碎的。假设三:每张纸片经过粉碎时没有损耗。(二) 符号说明 纸片之间的吻合程度四、 模型建立与求解(一) 问题一对于问题一给定的来自同一页印刷文字文件的碎纸机破碎纸片中纸片的复原工作所涉及到
10、的问题有:纸张之间的吻合程度对拼接效果的影响,人工干预对拼接效果的影响,需要按顺序从已经确定的第一张碎纸片开始依次匹配相邻的碎纸片,不仅需要建立一个循环的算法,考虑到如果是一个汉字被裁开的话,左右笔画的连续性会使得两边像素点的数值基本相似,例如根据编号为007和208的两张纸片的两侧像素点的一些特征可以判断这两张纸片是可以完成吻合拼接的。做可能相邻边缘矩阵的数值差的平方和后会得到一系列数值,理论上最小的数值即为复原过程中相邻的碎纸片,如果循环结果不符合要求,还要进行人工干预。针对以上问题我们模型的建立需要分以下步骤进行。 图1.编号为007与208的纸片拼接图以图1.中的“民”字的拼接为例,0
11、07右侧“民”字的灰度值和208左侧“民”字的灰度值为21001552552552552552190002192552552552551450372552552200155255255255255219000219255255255255145037255255第一步:数据的录入。我们要对附录1中纸片编号为000、001、002、003、004、005、006、007、007、008、009、010、011、012、013、014、015、016、017、018的图片导入MATLAB软件中,利用MATLAB软件中的imread语句读成表示各个位置点的数值化矩阵,将19个纸矩阵按原顺序排列,组成
12、总的数值化矩阵。第二步:选择基础纸片。利用纸张具有页边距的这一特点,使用MATLAB软件对每张纸片的灰度值进行聚类分析,最后我们选出了编号为008的纸片作为第一张基础拼接纸片。第三步:计算两张纸片的吻合程度的值。通过对前一张纸片右侧矩阵的一列数据和其余纸片左侧矩阵的一列数据对应相减求出对应的差平方,最后将这一列差平方累加得出的具体值。第四步:比较吻合程度值的大小。选出最小的一张纸片,并将其左侧与前一张纸片右侧拼接完成。以此类推直到最后一张纸片也完成拼接复原工作。制作程序见附录1。第四步:人工检验。对拼接好的内容进行核对,包括文字有无缺失、页面左右两侧是否有文字的残余、两侧留白是否合理、语句是否
13、通顺等后得出正确的拼接图片见附录2。附件2中英文文件纸片的拼接复原方法同理,得出拼接图片见附录2,附件1的拼接顺序见表1,附件2的拼接顺序见表2.。表1.附件1的拼接表008015013016004011003017002005006010014019012008018001007表2.附件2的拼接表004007003008016019012001006002010014011009013015018017005根据表1.和表2.的信息可以很清晰的看出附件1和附件2中纸片的拼接顺序。按照此顺序人工可以轻松地将附件1和附件2中的纸片拼接复原。手工拼接复原同时也对此模型的结果做了进一步的验证。运用
14、此方法可以高效率的处理这一类粉碎机单向粉碎纸张的拼接复原工作。(二) 问题二对于问题二,被碎纸机纵向和横向粉碎的一页印刷文字文件碎纸片中纸片的复原工作所涉及到的问题有:纸张之间的吻合程度对拼接效果的影响,人工干预对拼接效果的影响,需要按顺序从已经确定的第一张碎纸片开始依次向下匹配相邻的碎纸片形成一列基础拼接列,不仅需要建立一个循环的算法,考虑到如果是一个汉字被裁开的话,上、下、左、右笔画的连续性会使得四边像素点的数值基本相似,做可能相邻边缘矩阵的数值差的平方和后会得到一系列数值,理论上最小的数值即为复原过程中相邻的碎纸片,如果循环结果不符合要求,还要进行人工干预。针对以上问题我们模型的建立分以
15、下几步:第一步:数据的录入。我们要对附录3中纸片编号从000到208的图片导入MATLAB软件中,利用MATLAB软件中的imread语句读成表示各个位置点的数值化矩阵,将209个纸矩阵按原顺序排列,组成总的数值化矩阵。第二步:每一行的拼接。1.确定纸张四周的图片利用纸张具有页边距的这一特点,使用MATLAB软件对每张纸片的灰度值矩阵进行分析,通过排列每张图片的四周灰度值整列全为255的行数,确定其四周的页边距。然后对不同位置的页边距进行排序,可以找出所有图片中最左侧的十一张图片,以及最右侧的十一张图片。同样,可以用此办法找出最上边和最下边的各十九张图片。然后通过相邻两边的共有图片确定四个拐角
16、处的图片。2.对所有纸条进行大致分组通过对最左侧图片的灰度值矩阵进行分析,可以大致找出行首图片中行间距的大致位置,然后通过对每一张图片检索,找出对应位置灰度值全为255的所有图片,归结为一类。同样用此办法,可以确定,每一行的大概分类。3.对每一行的排序对第一列的所有图片进行分析,通过matlab确定第一列图片的灰度值的最后一列。比较这一行所有图片灰度值的第一列,通过欧氏距离确定相似度,然后对相似度进行排序,取数值最小者为该行的第二个图片。然后通过第二张图片的最后一列确定第三张图片直至某张图片灰度值最后一列全为255。同时通过最后一列的图片的灰度值确定前一张图片直至某张图片灰度值第一列全为255
17、。这样就确定了该图片每一行的结果。第三步:组行成页。由上一步可以得知每一行的排列结果,可以分为两种情况:1.该行图片灰度值的最后一列不全为255,即这行图片与下一行图片有文字上的交集。这样可以通过欧氏距离计算该行图片灰度值的最后一列与每一行的第一列之间的相似度,就可以知道每行图片为该行的下一行。2.该行图片灰度值的最后一列全为255,即这行图片与下一行图片没有文字上的交集。这样可以使用matlab确定这行图片底部灰度值全为255的行数。由于两行文字中的行间距约为27,可以计算出下一行图片文字与顶部的大概距离。从而可以确定下行图片。第四步:人工干预工作。1.找出图片四个拐角的具体编号。2.在大致
18、确定每一行的排列顺序时需要通过人工干预准确的对各个片段进行配对,并对拼接好的内容进行核对,包括文字有无缺失和错误、页面左右两侧是否有文字的残余、两侧留白是否合理、语句是否通顺等后得出正确的拼接图片,附件3中的中文文件拼接结果见表3.附件4中的英文文件拼接顺序见表4。最终的拼接程序见附录3。表3.附件3中中文文件纸片拼接顺序049054065143186002057192178118190095011022129028091188141061019078067069099162096131079063116163172006177020152036168100076062142030041023
19、147191050179120086195026001087018038148046161024035081189122103130193088167025008009105074071156083132200017080033202198015133170205085152165027060089146102154114040151207155140185108117004101113194119123014128003105082199135012073160203169134039031051107115176094034084183090047121042124144077112149
20、097136164127058043125013182109197016184110187066106150021173157181204139145029064111201005092180048037075055044206010104098172171059007208138158126068175045174000137053056093153070166032196表4.附件4中英文文件纸片拼接顺序0111541901840021041800641060041490322040650390671471701961980941131640281030910801010261000060
21、170281461070290401581860980241171500050590580920300370461270931410881211261051551141761821510220572020711650820011290631381530530381231201750850501601870972030311081161360730362071350150760431990451730791611791430070490611190331421680621690541921331181891621971120600140681741371950080471721560960230
22、99122090185109095069167163166188111144206003130034013110025027178066205010157074145083134055018056035016009183152044128200131052125140193087089048072012177124000102115(三) 问题三表5.附件5文件正面拼接顺序136a47b20b164a81a189a29b18a108b66b110b174a183a150b155b140b125b111a78a5b152b147b60a59b14b79b144b120a22b124a192b25
23、a44b178b76a36b10a89b143a200a86a187a131a56a138b45b137a61a94a98b121b38b30b42a84a153b186a83b39a97b175b72a93b132a87b198a181a34b156b206a173a194a169a161b11a199a90b203a162a2b139a70a41b170a151a1a166a115a65a191b37a180b149a107b88a13b24b57b142b208b64a102a17a12b28a154a197b158b58b207b116a179a184a114b35b159b73a19
24、3a163b130b21a202b53a177a16a19a92a190a50b201b31b171a146b172b122b182a40b127b188b68a8a117a167b75a63a67b46b168b157b128b195b165a105b204a141b135a27b80a0a185b176b126a74a32b69b4b77b148a85a7a3a0009a0145b0082a0205b0015a0101b0118a0129a0062b0052b0071a0033a0119b160a95b51a48b133b23a54a196a112b103b55a100a106a91b49
25、a26a113b134b104b6b123b109b96a43b99b表6.附件5文件反面拼接顺序078b111b125a140a155a150a183b174b110a066a108a018b029a189b081b164b020a047a136b089a010b036a076b178a044a025b192a124b022a120b144a079a014a059a060b147a152a005a186b153a084b042b030a038a121a098a094b061b137b045a138a056b131b187b086b200b143b199b011b161a169b194b173
26、b206b156a034a181b198b087a132b093a072b175a097a039b083a088b107a149b180a037b191a065b115b166b001b151b170b041a070b139b002a162b203b090a114a184b179b116b207a058a158a197a154b028b012a017b102b064b208a142a057a024a013a146a171b031a201a050a190b092b019b016b177b053b202a021b130a163a193b073b159a035a165b195a128a157a168a046a067a063b075b167a117b008b068b188a127a040a182b122a172a003b007b085
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1