1、2013 高教社杯全国大学生数学建模竞赛承 诺 书我们仔细阅读了全国大学生数学建模竞赛章程和全国大学生数学建模竞赛参赛规则 (以下简称为“竞赛章程和参赛规则” ,可从全国大学生数学建模竞赛网站下载) 。我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。我们知道,抄袭别人的成果是违反竞赛章程和参赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料) ,必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。我们郑重承诺,严格遵守竞赛章程和参赛规则,以保证竞赛的公正、公平性。如有违反竞赛
2、章程和参赛规则的行为,我们将受到严肃处理。我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开展示(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等) 。我们参赛选择的题号是(从 A/B/C/D 中选择一项填写): B 我们的参赛报名号为(如果赛区设置报名号的话): 所属学校(请填写完整的全名): 参赛队员 (打印并签名) :1. 2. 3. 指导教师或指导教师组负责人 (打印并签名): (论文纸质版与电子版中的以上信息必须一致,只是电子版中无需签名。以上内容请仔细核对,提交后将不再允许做任何修改。如填写错误,论文可能被取消评奖资格。)日期: 年 月 日赛区评阅
3、编号(由赛区组委会评阅前进行编号):2013 高教社杯全国大学生数学建模竞赛编 号 专 用 页赛区评阅编号(由赛区组委会评阅前进行编号):赛区评阅记录(可供赛区评阅时使用):评阅人评分备注全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):1碎纸片的拼接复原摘要本文从开发碎纸片的自动拼接技术,以提高拼接复原效率的角度出发,研究了不同切割方式、不同语言文字和单双面打印下的破碎文件拼接还原方面的问题。 与同类研究相比,本文旨在突出研讨自动拼接技术在生活中应用问题的重要性。针对问题一,附件 1 和附件 2 中的碎纸片都只是纵向切割的情况,运用切割边缘灰度检测模型和
4、图论模型,对附件 1 和附件 2 中的碎纸片进行了拼接还原,得到了附件 1 和附件 2 中破碎文件复原后的排列顺序如下所示:附件1中碎纸片文件复原顺序表(表1)附件2中碎纸片文件复原顺序表(表2)针对问题二,附件3和附件4中的碎纸片是横向、纵向都切割,且附件3和附件4中碎纸片上的文字是不同语言文字的情况,运用层次聚类方法、灰度检测模型、图论模型和递归收缩算法,并且加入了人工干预的影响,对附件3和附件4中的破碎文件先进行局部还原,且进行人工干预,得到了附件3中破碎文件复原后的排列顺序表(表4)和附件4中破碎文件复原后的排列顺序表(表7) 。针对问题三,附件5中的碎纸片是横向、纵向都切,且是双面打
5、印的英文文件,拼接复原难度大大增加,所以,将在问题一、问题二的数学模型基础上,增加识别英文字母的模型,对附件5中的破碎文件进行拼接复原。关键词: 自动拼接 边缘灰度检测 图论模型 层次聚类 递归收缩算法2一 问题重述破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。传统上,拼接复原工作需由人工完成,准确率较高,但效率很低。特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。随着计算机技术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。1. 对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切) ,建立碎纸片拼接复原模型和算法,并针对附件1、附
6、件2给出的中、英文各一页文件的碎片数据进行拼接复原。2. 对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。3. 上述所给碎片数据均为单面打印文件,从现实情形出发,还可能有双面打印文件的碎纸片拼接复原问题需要解决。附件5给出的是一页英文印刷文字双面打印文件的碎片数据。尝试设计相应的碎纸片拼接复原模型与算法,并就附件5的碎片数据给出拼接复原结果。二 模型假设1、不考虑扫描破碎文件储存为图片时,光线强度对碎纸片灰度的影响。2、假设碎纸片的扫描图片转存为灰度矩阵时,图片信息无缺失。3、假设需要拼接还原的碎纸片均为同一规格
7、。三 符号说明P 碎纸片的编号K 常数,0k)k=C(i,j);D(r,1)=i;D(r,2)=j;D(r,3)=k;endend endnd=size(D,1);for i=1:ndG(i,2)=(D(i,1)-1)/2; %图片序号16G(i,1)=(D(i,2)-2)/2; %图片序号G(i,3)=D(i,3);end附录 2.2%附件1中碎纸片复原全图(文件fujian1_1huatu.m)clc,clearx1 = imread(008.bmp);x2 = imread(014.bmp);x3= imread(012.bmp);x4= imread(015.bmp);x5= imre
8、ad(003.bmp);x6= imread(010.bmp);x7= imread(002.bmp);x8= imread(016.bmp);x9= imread(001.bmp);x10= imread(004.bmp);x11= imread(005.bmp);x12= imread(009.bmp);x13= imread(013.bmp);x14= imread(018.bmp);x15= imread(011.bmp);x16= imread(007.bmp);x17 = imread(017.bmp);x18= imread(000.bmp);x19= imread(006.bm
9、p);z = x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19;imshow(z)附录 2.3%求附件 2 中碎纸片两两拼接的匹配值 (fujian_2.m)clc,clear,close allk=1;for i=0:18N=sprintf(%03d.bmp,i);a=imread(N);n=size(a,2);A(:,k)=a(:,1);k=k+1;A(:,k)=a(:,n);k=k+1;endn=size(A);t=0;17C=zeros(38);for i=1:2:n(1,2)for j=2:2:n(1
10、,2) t=0;if(j=(i+1)D(r,1)=i;D(r,2)=j;D(r,3)=k;endend end nd=size(D,1);for i=1:ndG(i,2)=(D(i,1)-1)/2;G(i,1)=(D(i,2)-2)/2;G(i,3)=D(i,3);end附录 2.4%附件2碎纸片复原全图(文件fujian2_1_huatu.m)clc,clearx1 = imread(003.bmp);x2 = imread(006.bmp);x3= imread(002.bmp);x4= imread(007.bmp);x5= imread(015.bmp);18x6= imread(01
11、8.bmp);x7= imread(011.bmp);x8= imread(000.bmp);x9= imread(005.bmp);x10= imread(001.bmp);x11= imread(009.bmp);x12= imread(013.bmp);x13= imread(010.bmp);x14= imread(008.bmp);x15= imread(012.bmp);x16= imread(014.bmp);x17 = imread(017.bmp);x18= imread(016.bmp);x19= imread(004.bmp);z = x1,x2,x3,x4,x5,x6,
12、x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19;imshow(z)附录 2.5%对附件3中的碎纸片进行初步分类 (fujian_3_fl.m)clc,clear,close allt=0;for i= 0:208N=sprintf(%03d.bmp,i);a=imread(N);n=size(a);t=t+1;for j=1:n(1,1)for k=1:n(1,2)if (a(j,k)=122)a(j,k)=0; %将白点赋值为0elsea(j,k)=1; %将黑点赋值为1endif (a(j,k)=1)b(1,t)=i;b(j+1,t)=1;
13、endendendendnb=size(b);19A=zeros(nb(1,2);for i=1:nb(1,2)for j=1:nb(1,2)A(i,j)=inf;endendfor j=1:nb(1,2)-1for k=j+1:nb(1,2)A(j,k)=t;t=0;for i=2:nb(1,1)if(b(i,j)=b(i,k) t=t+1;endendendendn=size(A);for i=1:n(1,1)t=0;B(i,1)=i-1;for j=1:n(1,2)if (A(i,j)k)k=C(i,j);D(r,1)=i;D(r,2)=j;D(r,3)=k;endend endnd=s
14、ize(D,1);for i=1:nd21G(i,2)=(D(i,1)+1)/2;G(i,1)=D(i,2)/2;G(i,3)=D(i,3);end附录 2.7%附件3 碎纸片复原全图(文件fujian3_huatu.m)clc,clearx1 = imread(049.bmp);x2 = imread(054.bmp);x3= imread(065.bmp);x4= imread(143.bmp);x5= imread(186.bmp);x6= imread(002.bmp);x7= imread(057.bmp);x8= imread(192.bmp);x9= imread(178.bmp
15、);x10= imread(118.bmp);x11= imread(190.bmp);x12= imread(095.bmp);x13= imread(011.bmp);x14= imread(022.bmp);x15= imread(129.bmp);x16= imread(028.bmp);x17 = imread(091.bmp);x18= imread(188.bmp);x19= imread(141.bmp);x20 = imread(061.bmp);x21= imread(019.bmp);x22= imread(078.bmp);x23= imread(067.bmp);x2
16、4= imread(069.bmp);x25= imread(099.bmp);x26= imread(162.bmp);x27= imread(096.bmp);x28= imread(131.bmp);x29= imread(079.bmp);x30= imread(063.bmp);x31= imread(116.bmp);x32= imread(163.bmp);x33= imread(072.bmp);x34= imread(006.bmp);x35= imread(177.bmp);x36 = imread(020.bmp);22x37= imread(052.bmp);x38=
17、imread(036.bmp);x39= imread(168.bmp);x40= imread(100.bmp);x41= imread(076.bmp);x42= imread(062.bmp);x43= imread(142.bmp);x44= imread(030.bmp);x45= imread(041.bmp);x46= imread(023.bmp);x47= imread(147.bmp);x48= imread(191.bmp);x49= imread(050.bmp);x50= imread(179.bmp);x51= imread(120.bmp);x52= imread
18、(086.bmp);x53= imread(195.bmp);x54= imread(026.bmp);x55 = imread(001.bmp);x56= imread(087.bmp);x57= imread(018.bmp);x58= imread(038.bmp);x59= imread(148.bmp);x60= imread(046.bmp);x61= imread(161.bmp);x62= imread(024.bmp);x63= imread(035.bmp);x64= imread(081.bmp);x65= imread(189.bmp);x66= imread(122.
19、bmp);x67= imread(103.bmp);x68= imread(130.bmp);x69= imread(193.bmp);x70= imread(088.bmp);x71= imread(167.bmp);x72= imread(025.bmp);x73= imread(008.bmp);x74 = imread(009.bmp);x75= imread(105.bmp);x76= imread(074.bmp);x77= imread(071.bmp);x78= imread(156.bmp);x79= imread(083.bmp);x80= imread(132.bmp);
20、23x81= imread(200.bmp);x82= imread(017.bmp);x83= imread(080.bmp);x84= imread(033.bmp);x85= imread(202.bmp);x86= imread(198.bmp);x87= imread(015.bmp);x88= imread(133.bmp);x89= imread(170.bmp);x90= imread(205.bmp);x91= imread(085.bmp);x92= imread(152.bmp);x93 = imread(165.bmp);x94= imread(027.bmp);x95
21、= imread(060.bmp);x96= imread(014.bmp);x97= imread(128.bmp);x98= imread(003.bmp);x99= imread(159.bmp);x100= imread(082.bmp);x101= imread(199.bmp);x102= imread(135.bmp);x103= imread(012.bmp);x104= imread(073.bmp);x105= imread(160.bmp);x106= imread(203.bmp);x107= imread(169.bmp);x108= imread(134.bmp);
22、x109= imread(039.bmp);x110= imread(031.bmp);x111= imread(051.bmp);x112 = imread(107.bmp);x113= imread(115.bmp);x114= imread(176.bmp);x115 = imread(094.bmp);x116 = imread(034.bmp);x117= imread(084.bmp);x118= imread(183.bmp);x119= imread(090.bmp);x120= imread(047.bmp);x121= imread(121.bmp);x122= imrea
23、d(042.bmp);x123= imread(124.bmp);x124= imread(144.bmp);24x125= imread(077.bmp);x126= imread(112.bmp);x127= imread(149.bmp);x128= imread(097.bmp);x129= imread(136.bmp);x130= imread(164.bmp);x131 = imread(127.bmp);x132= imread(058.bmp);x133= imread(043.bmp);x134 = imread(125.bmp);x135= imread(013.bmp)
24、;x136= imread(182.bmp);x137= imread(109.bmp);x138= imread(197.bmp);x139= imread(016.bmp);x140= imread(184.bmp);x141= imread(110.bmp);x142= imread(187.bmp);x143= imread(066.bmp);x144= imread(106.bmp);x145= imread(150.bmp);x146= imread(021.bmp);x147= imread(173.bmp);x148= imread(157.bmp);x149= imread(
25、181.bmp);x150= imread(204.bmp);x151= imread(139.bmp);x152= imread(145.bmp);x153 = imread(029.bmp);x154 = imread(064.bmp);x155= imread(111.bmp);x156= imread(201.bmp);x157= imread(005.bmp);x158= imread(092.bmp);x159= imread(180.bmp);x160= imread(048.bmp);x161= imread(037.bmp);x162= imread(075.bmp);x16
26、3= imread(055.bmp);x164= imread(044.bmp);x165= imread(206.bmp);x166= imread(010.bmp);x167= imread(104.bmp);x168= imread(098.bmp);25x169 = imread(172.bmp);x170= imread(171.bmp);x171= imread(059.bmp);x172 = imread(007.bmp);x173 = imread(208.bmp);x174= imread(138.bmp);x175= imread(158.bmp);x176= imread
27、(126.bmp);x177= imread(068.bmp);x178= imread(175.bmp);x179= imread(045.bmp);x180= imread(174.bmp);x181= imread(000.bmp);x182= imread(137.bmp);x183= imread(053.bmp);x184= imread(056.bmp);x185= imread(093.bmp);x186= imread(153.bmp);x187= imread(070.bmp);x188 = imread(166.bmp);x189= imread(032.bmp);x19
28、0= imread(196.bmp);x191 = imread(089.bmp);x192 = imread(146.bmp);x193= imread(102.bmp);x194= imread(154.bmp);x195= imread(114.bmp);x196= imread(040.bmp);x197= imread(151.bmp);x198= imread(207.bmp);x199= imread(155.bmp);x200= imread(140.bmp);x201= imread(185.bmp);x202= imread(108.bmp);x203= imread(11
29、7.bmp);x204= imread(004.bmp);x205= imread(101.bmp);x206= imread(113.bmp);x207 = imread(194.bmp);x208= imread(119.bmp);x209= imread(123.bmp);z = x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19;x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38;26x39,x40,x41
30、,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57;x58,x59,x60,x61,x62,x63,x64,x65,x66,x67,x68,x69,x70,x71,x72,x73,x74,x75,x76;x77,x78,x79,x80,x81,x82,x83,x84,x85,x86,x87,x88,x89,x90,x91,x92,x93,x94,x95;x96,x97,x98,x99,x100,x101,x102,x103,x104,x105,x106,x107,x108,x109,x110,x111,x112,x1
31、13,x114;x115,x116,x117,x118,x119,x120,x121,x122,x123,x124,x125,x126,x127,x128,x129,x130,x131,x132,x133;x134,x135,x136,x137,x138,x139,x140,x141,x142,x143,x144,x145,x146,x147,x148,x149,x150,x151,x152;x153,x154,x155,x156,x157,x158,x159,x160,x161,x162,x163,x164,x165,x166,x167,x168,x169,x170,x171;x172,x1
32、73,x174,x175,x176,x177,x178,x179,x180,x181,x182,x183,x184,x185,x186,x187,x188,x189,x190;x191,x192,x193,x194,x195,x196,x197,x198,x199,x200,x201,x202,x203,x204,x205,x206,x207,x208,x209;imshow(z)附录 2.8%对附件4中的碎纸片进行初步分类 (fujian_4_fl.m)clc,clear,close allfor k=0:208N=sprintf(%03d.bmp,k);a=imread(N);n=size
33、(a);for i=1:n(1,1)t=0;for j=1:n(1,2)if(a(i,j)=255) a(i,j)=0; %对白点赋值为0elsea(i,j)=1; %对黑点赋值为1endif(a(i,j)=1) %对碎纸片中的黑点数进行横向求和t=t+1;27A(i,k+1)=t; endendendendn=size(A);for i=1:n(1,1)for j=1:n(1,2)if (A(i,j)10) A(i,j)=0;elseA(i,j)=1;endendendfor j=1:n(1,2)-1for k=j+1:n(1,2)B(j,k)=t;t=0;for i=1:n(1,1)if(A(i,j)=A(i,k)%计算两张碎纸片不相似的黑点数t=t+1;endendendendn=size(B);for i=1:n(1,1)t=0;C(i,1)=i-1;for j=1:n(1,2)if (B(i,j)13)t=t+1; C(i,t+1)=j-2; endendendnc=size(C); %优化C矩阵for j=1:n(1,2)for i=1:n(1,1)if(C(i,j)=j-3)C(i,j)=0; endend