2018年数学建模第七次培训课件_第1页
2018年数学建模第七次培训课件_第2页
2018年数学建模第七次培训课件_第3页
2018年数学建模第七次培训课件_第4页
2018年数学建模第七次培训课件_第5页
已阅读5页,还剩38页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XX理工大学

碎纸片的拼接复原

2018年数学建模第七次培训

XXX光信161

XXX机165

XXX计算162

碎纸片的拼接复原

摘要

针对问题一:从每张图片的像素点出发,通过MATLAB软件中的imread函数得到

每张图片的左右两侧边缘的像素矩阵,然后采用人工干预通过观察碎纸片边缘留白的情

况的找到最左的第一张碎纸片,建立优化模型,以前一张碎纸片右侧边缘像素矩阵与后

一张左侧边缘像素矩阵匹配差异最小为目标函数,依次穷举从左到右排列好未排序的碎

纸片并进行拼接碎纸片,由此得到的碎纸片的拼接顺序和复原图。附件1、附件2复原

图片见附录二、附录四,拼接顺序见表1和表2。

针对问题二:与问题一思路一样,但在问题一仅纵切的基础上进行了横切,增大了

数据处理量,为了减少出错率,我们采用聚类分析的方法,将所有图片通过MATLAB

软件中的imread函数得到像素矩阵,仍采用人工干预的方式找到第一行第一张图片,然

后将所有图片灰度二制化,将图片每一行的灰色像素点全部转化为黑色像素点,然后从

上至下找到黑白像素的分界线,根据分界线的位置差异值最小聚合出第一行所有的图片,

同理,再聚合出第一列所有的图片,再利用第一问的左右拼接模型算法拼接出第一行的

图片,然后通过上下拼接模型算法拼接好第一列所有图片,同时找出了第二行第一张图

片,继续按照上述方法即可找出并拼接好所有图片。将附件3、附件4复原图片见附录

六、附录八,图片排列顺序见表7和表8。

针对问题三:与问题二类似,通过人工干预找到文件最上侧一行和最左侧一列的图

片作为备选图片,再找到上侧和左侧都留有空白的图片,即左上角的图片,在第一行图

片中,从左侧图片开始,以图片a、b边缘相似度为标准,搜索与当前图片相邻的图片,

直到第一行搜索完成,对于剩下的每一行,以第一行第一张图片a、b面上下边缘相似度

为标准,搜索其余行的第一张图片,以上一行图片a、b面上下相似度和左右相似度为标

准,匹配图片,重复操作,观察图片,对错误排序的采取人工干预进行微调即可得到复

原的图片,碎纸片附件5复原图片见附录十,碎纸片正反面排序见表9和表10。

关键词:灰度二制化,MATLAB,聚类分析,imread

目录

一、问题重述.....................................................................1

1.1相关数据说明.............................................................1

1.2需要解决的问题..........................................................1

二、模型假设...............................................................2

三、符号定义...............................................................2

四、问题分析...............................................................3

4.1问题一分析.......................................................3

4.2问题二分析.......................................................3

4.3问题三分析.......................................................4

4.4解题思路..........................................................5

五、模型的建立与求解.......................................................6

5.1.1模型准备....................................................6

5.1.2模型的建立与求解............................................7

5.2问题二...........................................................9

5.2.1模型准备....................................................9

5.2.1模型建立与求解.............................................10

5.3问题三............................................................11

5.3.1模型准备....................................................11

5.3.2模型建立与求解..............................................11

八、模型评价与推广........................................................13

6.1模型评价...........................................................13

6.1.1优点........................................................13

6.1.2缺点13

参考14

七、

录

附15

八、

录

附15

录

附16

录

附16

录

附

四18

录

附

五18

录

附

六23

录

附

七24

八

录

附32

九

录

附32

十

附

录35

附

录38

表7

•

附

录38

表8

•

附

录39

表9

•

附

录40

表1

一、问题重述

破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都

有着重要的应用。传统上,拼接复原工作需由人工完成,准确率较高,但效率很

低。特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。随着计算机技

术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。

1.1相关数据说明

(1)每一附件为同一页纸的碎片数据。

(2)附件1、附件2为纵切碎片数据,每页纸被切为19条碎片。

(3)附件3、附件4为纵横切碎片数据,每页纸被切为11X19个碎片。

(4)附件5为纵横切碎片数据,每页纸被切为11X19个碎片,每个碎片有

正反两面。该附件中每一碎片对应两个文件,共有2X11X19个文件,例如,第

一个碎片的两面分别对应文件000a、000bo

1.2需要解决的问题

(1)对于给定的来自同一页印刷文字文件的碎纸机破碎纸片,建立碎纸片

拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片

数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间

节点。复原结果以图片形式及表格形式表达(见【结果表达格式说明】)。

(2)对于碎纸机既纵切又横切的情形,请设计碎纸片拼接复原模型和算法,

并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。如

果复原过程需要人工干预,请写出干预方式及干预的时间节点。复原结果表达要

求同上。

(3)从现实出发,还可能有双面打印文件的碎纸片拼接复原问题附件5给

出的是一页英文印刷文字双面打印文件的碎片数据。请设计相应的碎纸片拼接复

原模型与算法,就附件5的碎片数据给出拼接复原结果,结果表达要求同上。

二、模型假设

1.假设页面文件的四边都有一定的边距,且边距大于文件中文本的行距。

2.假设在切割过程中除边界外,其他切割线都切割文字;

3.假设每张碎纸片的大小一致;

4.假设碎纸机切的纸片无损坏;

5.假设碎图片中的文字符字体格式相同,英文字符字体格式相同;

三、符号定义

符号意义

pti第i张碎纸片的像素矩阵的最右侧1列

phi第j张碎纸片的像素矩阵的最左侧1列

pyh第h张碎纸片的像素矩阵的最上侧1行

PZj第j张碎纸片的像素矩阵的最下侧一行

ptaia面第i张碎纸片的像素矩阵的最右侧1列

phaja面第j张碎纸片的像素矩阵的最左侧1列

pyaha面第h张碎纸片的像素矩阵最上侧的1行

pzqa面第j张碎纸片的像素矩阵的最下侧的1行

f矩阵偏差函数

2

四、问题分析

4.1问题一分析

对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎

纸片拼接复原模型和算法。在MATLAB软件中应用imread函数读取附件一及

附件二中的图片,可以获得相应的像素矩阵⑵,从矩阵中可以清楚的看到图片中

每个像素的灰度值,观察图片边缘及灰度矩阵边缘可以得出:图片被切割后会在

这张图片被切割两侧生成相似的两个列矩阵,可以猜测这两个列矩阵相似程度越

高,则这两张图片可以拼接复原的概率就越大,为表示两列矩阵的相似程度,把

每个图片的左右两侧从上到下进行扫描,取每张图片的最右侧矩阵和另一张图片

的最左侧矩阵,对这两列矩阵进行对应行相减取绝对值,当所得到的值最小时,

证明这两张图片左右相邻,依次比较,最终复原图片。

考虑到高效问题,我们从人工干预的角度出发,采取适当的人工干预找出第

一张碎纸片,这样可以减少穷举的次数,大大加快了程序的执行效率。

4.2问题二分析

问题二与问题一的区别在于问题二在问题一的基础上,每张纸在原来纵向切

成19条的基础上又横向切成11条,得到了11X19的碎片,通过查看附件3、

附件4的图片属性我们知道虽然图片的像素从1980X72降到了180X72,但数

据的个数却增加了,数据的处理量也就大大增加,所以如果继续采用问题一的通

过人工干预找出第一张图片再简单地进行前后两张碎纸片的贴近度比较来排列,

就会产生相当大的误差,考虑到这点,我们采用聚类分析模型,对图片进行聚类

分析,将图片进行区域性划分,从而减少了数据处理量。

(1)我们人工干预选出一组上侧留有空白的图片作为备选图片,以及选取

一张左侧跟上侧都留有空白的图片,作为拼接的第一张图片,其次将

选取的第一张图片为基准,采用相应的拼合算法,不断的向右向下匹

配下一张图片,对于碎纸片上的文字处理可采取以下方式,首先用

3

MATLAB中的imread函数读取图片,将图片像素转换为相应的矩阵,

其次将矩阵中处于0到255之间的数值所在的行的全部数值转化为0

(即将所有灰色像素点转化为黑色像素点,并将其所在的行全部转换

为黑色像素点),然后由上至下找出黑白像素的分界线,并依次将第

一张图片的分界线与其他图片的分界线进行差异匹配,从而分类聚合

出第一行所有的图片。

(2)利用问题一中的拼接算法,以第一张图片右侧边缘像素点与第一行所

有图片左侧边缘像素点像素匹配差异值最小为目标函数,建立优化模

型,从而排列出,第一行所有图片的顺序

(3)同理,将剩余图片像素矩阵中处于0到255之间的数据所在的列全部

数值转换为0,然后由左至右找出黑白像素的分界线,并依次将第一

张图片的分界线与其他图片的分界线进行差异匹配,从而分类聚合出

第一列所有的图片。

(4)改进问题一中的算法,以第一张图片下侧边缘像素点与第一列所有图

片上侧边缘像素点像素匹配差异值最小为目标函数,建立优化模型,

从而确定出第二行第一张碎纸片,然后将第二行第一张碎纸片的右侧

边缘像素点与待排图片左侧边缘像素点以及与上一行中,对应图片下

侧边缘像素点与待排图片上侧边缘像素点的像素匹配差异值最小为

目标函数,建立优化模型,依次穷举出所有未排序的图片,然后找出

第二行第一张碎纸片。其他行碎片,依照此理类推即可排出顺序。

(5)所有图片匹配完成后,对于拼接错误的图片,进行相应的人工干预,

即可求得最后的图像复原图

4.3问题三分析

该问题比第二问更复杂,但是更贴合于实际情况,而且实用性很强,因为在

生活中双面打印的文件比较常见。

问题二和问题三的区别是需要拼接的碎纸片由仅含单面打印的文字变成了

双面打印,如果通过问题二的方法分别对两面拼接,,得到的图片很可能正反两

个面的各个图片不能一一配对,鉴于此,我们拟采用如下方法拼接图片:

4

首先通过聚类得到首行和首列以及最左上角的图片,然后从最左上角的图片

开始,综合考虑a,b两面相似度,从左侧一直搜索到右侧,逐步确定第一行的

图片顺序,其次根据上下贴近度,从首列备选图片中选出第二行第一个,并结合

上下和左右贴近度来确定该行的其余图片顺序,重复上述步骤,不断探索,即可

得到排列好的正反两面图片,通过简单的人工调整,便可得到较为准确的最终两

面图片。

4.4解题思路

5

五、模型的建立与求解

5.1问题一

5.1.1模型准备

(1)图像像素的量化方法

考虑到MATLAB能够对图像进行有效的匹配,需要把碎纸片图像转换成

MATLAB能够识别的数据,为此我们采用了imread函数,将各图片转化成由像

素构成的矩阵,因而将图片的匹配问题转化为了对像素差异求最优解的问题。

(2)图片贴近度

模糊数学中常用贴近度来描述两个模糊集之间的距离,在某种意义上,贴近

度就是『距离(这里的距离是上述标准化意义上的距离)。而之所以应用这个变

换是考虑到“度”的概念的直觉反应一一距离越近,贴近的程度显然越“高。

因此它恰为距离的反数。因此我们也可以把贴近度的概念延伸,用图片贴近度来

描述两张图片的相近程度。图片贴近度主要由两张图片的像素匹配差异值决定。

两张图片像素匹配差异值越小,图片贴近度越高,反之,图片贴近度越低。

(3)图片像素配差异值求解方法m

在图论中,一个图是一个匹配(或称独立边集)是指这个图中任意两条边,

都没有公共的顶点。这时每个顶点都至多连出一条边,而每一条边都将一对顶点

相匹配。通样,我们在图像拼接中运用类似的匹配思想。将前一个图片像素点构

成的矩阵的最后一列与后一个图片像素点构成的矩阵的第一列对应做差后取绝

对值再求和即可求得两张图片像素的匹配差异值。

(4)对碎纸片图像文字的处理

1.在逻辑上将图像划分为nXm格(nxm为碎纸片的分辨率);

2.对最左边一列从上至下取各格的值,该列获得的值组成一个向量;最右

边一列处理相同,同时标记是左还是右;

3.用任一左边向量和所有右边向量比

4.较,记下每一左边向量与所有右边向量的距离,然后对距离进行排序,

对于距离值较小的,可认为该距离对应的左右边可以拼接,对于距离值

6

差距在较小范围内的为多重可拼接(拼接重码),此时需要进行人工干

预。

5.1.2模型的建立与求解

(1)最小二乘法网

1、图片左右拼凑的数学模型

设A,B分别表示左右放置的两张图片对应的数字矩阵,定义前一个矩阵的

最后一列与后一个矩阵的第一列之间的偏差函数为:

/(A,B)=A(/,72)-B(z,l)(1)

其中A(z,72),B(i,l)分别表示矩阵A,8第72列和第一列的元素。

对于给定的矩阵A,若存在矩阵B,使得A与B之间的偏差函数/(A,B)

达到最小,则称A与B可以匹配,此时A与B对应的图片可以左右拼接。

2、图片上下拼接的数学模型

类似地,设C,D分别表示上下放置的两张图片对应的数字矩阵,定义上面

矩阵的最后一行与下面矩阵的第一行之间的偏差函数为:

/(C,D)=C(z,72)-£>(/,1)(2)

其中,C(1980,j),D(1,;)分别表示矩阵C,D第1980行和第1行的元

素。

对于给定的矩阵C,若存在矩阵D,使得C与D之间的偏差函数/(C,D)

达到最小,则称C与D可以匹配,此时C与D对应的图片可以上下拼接。

每运行一次上面的模型,则确定一幅图的邻接关系,从而为确定的碎片数减

少一张,经过有限步以后,就可以将文件页面复原。

(2)算法思想

1.对附件中的19张图分别进行灰度处理,进行二值化,得到19个0,1数

字矩阵,即图片的数字化。

2.根据破碎图片的特点,找到最左侧的碎纸片,记为A1。

3.计算Ai与其余18张图片对应矩阵的列偏差值。若存在A2,使得两个矩

7

阵的偏差/(A|,A2)绝对值达到最小,则A?即为第二张图片。

重复上诉的步骤,依次得到所有碎纸片的排列,即可拼接成完整图片。

(3)碎纸片预处理

预处理的目的是将待处理物体表示为适合于计算机处理的形式。对于碎纸片

来说,就是将其像素化、数字化,为此,我们利用MATLAB软件中的imread函

数对碎纸片进行量化,对于题目中给出的碎片全是破碎的文字碎片,且每片大小

相同,都是规则的矩形,所以我们不必考虑碎片的形状。每一碎片的上下左右边

缘相对于页面上下左右的边缘时一致的,从而两个碎片只有左右拼接和上下拼

接两种方式。由附件可以得到这一页中文文件被纵向切割成19条。对于其中任

意一条碎片,采用纵横分割的办法,分成许多小区域,这些小区域可以与图片的

像素点对应起来,即用碎片的像素点作为碎片的分割方式,通过查看每张图的属

性,我们发现每张图都是72x1980像素的图片,因此我们将每张图分割为

72x1980个区域,通过MATLAB的imread函数读入图像每个像素点的灰度值,

得到灰度图,每张图对应一个72x1980的灰度矩阵。

将图片进行灰度处理以后,每个像素的灰度值介于0-255之间,0表示黑

色,255表示白色,位于0到255之间的值为表示该小快的灰度,越接近0颜

色越接近黑色,越接近255颜色越接近白色。

根据像素匹配差异值越小,图片贴近度越高,找出与第一张碎纸片像素值差

异最小的图片作为第二张拼合的图片,其他图片的匹配以此类推。

(4)碎纸片的拼接合并

通过MATLAB编程求解得到附件1和附件2的图片拼接顺序如下表(附件

1算法见附录一,拼接图片见附录二,附件2算法见附录三,拼接图片见附录四):

008014012015003010002016001004

005009013018011007017000006

表1附件1图片拼接顺序

003006002007015018011000005001

009013010008012014017016004

表2附件2图片拼接顺序

8

5.2问题二

5.2.1模型准备

预处理的目的是将待处理物体表示为适合于计算机处理的形式。对于碎纸片

来说,就是将其像素化、数字化,为此,我们利用MATLAB软件中的imread函

数对碎纸片进行量化,对于题目中给出的碎片全是破碎的文字碎片,且每片大小

相同,都是规则的矩形,所以我们不必考虑碎片的形状。每一碎片的上下左右边

缘相对于页面上下左右的边缘时一致的,从而两个碎片只有左右拼接和上下拼

接两种方式。对于其中任意一条碎片,采用纵横分割的办法,分成许多小区域,

这些小区域可以与图片的像素点对应起来,即用碎片的像素点作为碎片的分割方

式,通过查看每张图的属性,我们发现每张图都是72x180像素的图片,因此我

们将每张图分割为72x180个区域,通过MATLAB的imread函数读入图像每个

像素点的灰度值,得到灰度图,每张图对应一个72x180的灰度矩阵。

在图片的拼接中,通过MATLAB软件将碎纸片图像量化得到矩阵,将碎纸

片数值处于0到255之间的数所在的行或列所有的数值全部转化为0,找出黑白

像素的分界线,根据分界线的匹配度进行聚合分类,聚类分析的思想是根据一批

样本的观察指标,具体找出相似程度较大的样本聚为一类,关系密切的聚到一个

小的分类单元,这样就形成一个个类,大大减少了数据处理的难度。

在碎纸片的聚类过程中,首先将所有图片得到的像素矩阵灰度二制化,将灰

色像素值转化为黑色像素值,由上至下找出黑白像素分界线,根据上侧跟左侧都

留有白的特征人工干预找到第一张图片,然后以与第一张图片黑白像素分界线与

其他图片黑白像素分界线差异值最小为目标函数建立优化模型,目标函数如公式

(3)所示。

根据第一问模型改进后建立第二问目标函数为:

19208

min=

EXi~phj।(3)

i=2j=O

我们根据分界线位置的差异最小,对碎纸片预处理得到的像素矩阵,聚类分

析得到第一行所有的图片,同样运用聚类分析的思想得到第一列所有的图片,根

据问题一的匹配方法求出第一行图片的拼接顺序。

9

然后以第一行第一张碎纸片下侧像素点与其他碎纸片上侧像素点匹配差异

值最小为目标函数,目标函数如公式(4)所示。

目标函数:

11208

="Zj|(4)

h=2j=0

依次穷举第一列所有的碎纸片,找出第二行第一张碎纸片。其次,根据第一

行排好顺序的碎纸片以及第二行第一张碎纸片,采用上下侧边缘像素配以及左右

侧边缘匹配,目标函数如公式(5)所示。

11208

min=ZP%一0层1+1PMi-Pz"(5)

h=2j=O

依次找出并排列好第二行

重复上诉两个步骤即可得到其余各行的排列顺序。

(1)观察通过MATLAB的imshow()对聚类分析及匹配得到的图片顺序

的图像,调整不吻合的图片,逐步使得到的图像准确。

5.2.1模型建立与求解

由假设得到,印刷文字的页面特征为上、下、左、右边缘留有一定的空白,

因此处于左边缘的碎片其识别矩阵中的前几列的特征数基本相同或完全相同,处

于右边缘的碎片其识别矩阵中的后几列的特征数基本相同或完全相同。处于上边

缘的碎片其识别矩阵中的前几行的特征数基本相同或完全相同。处于下边缘的碎

片其识别矩阵中的后几行的特征数基本相同或完全相同。利用这一方法,我们可

以从所有碎片中首先挑出待复原页面的可能位于边缘的碎片。以识别页面左边缘

为例,建立如下复原方法:识别页面左边碎片时,仅需考虑209块碎片的209

个灰度矩阵中从第一列开始到某列数值全为255的碎片,得到图片的左边界,找

出左边界,与第一问一样,读入图片,得到像素灰度值,构建灰度矩阵,编程筛

选出每行的图片。利用问题一中的方法进行计算机拼接,但由于拼接存在一定的

误差,所以部分图片拼接不完整正确,在此情况之下进行人工干预,观察图片内

容,根据内容手动移动碎纸图片进行拼接。利用第一问求左边界的图片的思想,

运行程序可以找到附件3中位于第一列中的图片共有11张,分别为

10

049054065143186002057192178118

190095011022129028091188141

表3附加卜3得到的第一行图片顺序

049061168038014094125029007071089

表4附件3得到的第一列图片顺序

159139001129063138153053038123

120175085050160187097203031

表5附小卜4得到的第一行图片顺序

191201086019159020208070132171081

表6附件4得到的第一列图片顺序

恰好符合11x19矩阵的格式要求。即说明这11张图片为整体图片第一列

的所有组成部分。用MATLAB程序,以已经确定的第一列的11张图片为标准

分为11类,分别找出与第一列11个图空白行位置相近似的图片归为一类。

最终得到附件3图片拼接顺序见附录表7(程序见附录五,复原图片见附录

六),附件4拼接顺序见附录表8(程序见附录七,复原图片见附录八)

5.3问题三

5.3.1模型准备

(1)模拟退火算法

模拟退火算法的目的是求解,精髓是在局部最优解过程中跳出,并最终趋于

全局最优,此题为了避免分别求出的两面图片不能整合成一张纸,采用模拟退火

算法来求全局最优解⑸。

(2)分叉搜索

由于此题a.b代表两面,不可以统一进行聚类,然后分成各行,然后进行

匹配,因此我们采用分叉查找来进行分类,同时兼顾剩下的另一类,得到的两类

比较准确。

5.3.2模型建立与求解

首先还是将图片进行预处理,同问题二一样,原文件的上、下、左、右边缘

11

留有一定的空白,根据附件5的图片得到文件被纵向切割成19条,沿横向切割成

11条,与前两问一样通过查看每幅图的属性,我们获知每张图都是180X72像

素的图片。对于有双面打印的碎纸片,根据边缘留白情况,可筛选出22个左边界,

利用MATLAB软件中的imread函数碎纸片进行量化,将每张碎纸片都转化成了

180X72的矩阵。

然后根据文字位置,通过聚类将碎纸片分为多类,选取一组上侧有留白的图

片作为首行备选图片和一组左侧有留白的图片作为首列备选图片,再选取一张左

侧和上侧都留有适当留白的图片作为左上角的图片,然后在首行备选图片中,从

左侧的图片开始,利用公式(6)计算碎纸片的相似度:

min=|pt%-pha2\+1ptb2-phbt\(6)

以图片a、b面边缘的相似度为标准,搜索与当前图片相邻的图片,直至首

行搜索完成,对于剩下的每一行,在首列备选图片中,利用公式(7)计算岁纸

片的相似度:

min=|pya[-\+1pyb2-pzbx\(7)

图片以a、b面上下边缘相似度为标准,选取一张图片作为该行左侧图片,

对于该行剩下的位置,利用公式(8)计算相似度:

min=|pt%-pha3\+1pya2-pza5\+

Ip玄一Phb\I+1pyb2-pz“i

以a、b面上下相似度与左右相似度为标准,匹配图片。对于其余行重复上

述步骤。匹配完成后,观察图片,并适当进行人工干预进行微调。

根据匹配算法求得附件5图片拼接顺序见附录表9和表10(程序见附录九,

复原图片见附录十):

12

六、模型评价与推广

6.1模型评价

6.1.1优点

(1)模型简单易懂,实用性较强,对于问题的改动只需要稍微改变模型即

可得出答案。

(2)在进行拼接的时候都进行了简单的人工干预,大大提高了图片拼接模

型的运行效率和准确率。

(3)问题二和问题三采取了聚类分析的方法,有效减少运算量,提高精确

度和拼接的效率。

6.1.2缺点

(1)我们在每个问题的图片拼接过程中都进行了人工干预,如果人工干预

错误,可能造成整个模型求解错误,这增加了人对于图片的观察力和分析力的要

求。

6.2模型推广

该模型在生活中碎纸片的复原拼接、司法物证复原、历史文献修复以及军事

情报获取等领域都有着重要的应用。

13

七、参考文献

[1]姜启源等,《数学模型(第四版)》,北京:高等教育出版社,2011

:2]罗智中,基于线段扫描的碎纸片边界检测算法研究[J],仪器仪表学报,2011,

32(2)

:3]扬启帆,《数学建模》,北京:高等教育出版社,2005

[4]韩煌,基于颜色和纹理特征的计算机自动拼接研究[D],首都师范大学,2008

[5]朱德通,最优化模型与实验[M],上海:同济大学出版社,2003

14

八、附录

附录一:

clear

clc

A=zeros(19,19);

forj=l:19

str=,C:\Users\$^\Desktop\sxjm(qi)\fujianerV;

I=imread([str,num2str(j),,.bmp,]);

i2=dither(I);

a=i2(:,72,l);

str='C:\Users\李澄\Desktop\sxjm(qi)\fujianer\';

fori=l:19

I=imread([str,num2str(i),'.bmp,]);

i2=dither(I);

mi=i2(:,l,l);

ni=a-mi;

A(j,i)=sqrt(dot(ni,ni));

end

end

a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];

fori=l:19

k=A(i,l);

a(i)=l;

forj=l:19

if(k>A(i,j))

k=A(i,j);

a(i)=j;

end

end

end

first=l;

fori=l:19

forj=l:19

if(A(i,j)=0)

first=j;

end

end

end

15

str='C:\Users\李澄\Desktop\sxjm(qi)\fujianer\';

z=imread([str,num2str(first),'.bmp']);

form=l:18

m=l;

str='C:\Users\李澄\Desklop\sxjm(qi)\fujianerV;

x=imread([str,num2str(first),,.bmp,]);

y=imread([str,num2str(a(first)),,.bmp']);

x=z;

z=[x,y];

first=a(first);

end

imshow(z)

附录二:

城上层楼空帔:城下港推古汴c举手揖吴云.人与3天俱远,.魂断,.

魂断.后衣松江月满簌簌衣巾莎春花“村里村北晌城车,牛衣古柳卖黄

瓜海棠珠统一王王..活院近冷珑..陋宙淮与匀淡「扁向验边派“小郑非

常易记,二的依旧能诗更有鼬鱼堪切盥,儿芈失教知自古田从休务

日,何妨低后笈吟天垂云三作有阴“土中人半醉,帘外m将深“双公绿

型娇眼枪波后琼翠姆舞秀跣“拿上身轻技态好者器轻笼两凤,军困

谈携双鸿为谁流睇不归家错诙门前过马“

我劝裔张归去好,从东自己忘喟V尘心消尽道心平•,江南与右北,何

处不堪行,闲离咀:谁念装损鞍王,何??梦云南..旧恨前欢,心事曲无据、.

要知欲见尢由,痂心犹口,信人道、一声传语:风卷珠帘口上钩“击曲乱

叶报斯秋:独挑纤手上高喽V临水纵瓒回晚肝〉归来转觉情怀动二悔笛闻

巾却几弄:秋阴甲:西山雪淡云凝旗:件有眺远,见长空万里,云无留迹V

桂侦飞来光射处,冷浸一天秋若<玉宇琼楼,乘鸾来去.人在清原国。江

山如画,望中馅树历历,省可清言挥玉尘,真须保凿全真“风流何似垣家

纯,不应同场客,惟爱史文君.、自惜风流云雨散:关山后俄节无卜丸待若

王见寻芳伴;为蜕相思,口断西楼燕.、莫恨黄花未吐.且救红粉幅扶。酒

身不必看茱黄俯仰人同今A,玉巴那法瘴秀,泳姿自有仙风.海仙时这

探芳丛到拄绿毛久氏“

俎豆反桑互过矣,凭君说与向荣,,层何灵趣报4:登君士如有可结

林粒王生“师宿汇家什,享风弱阿itL借君拍板与U也我也送场作戏、

交用疑用腥嫌桂印..印机嫌艰华.,闲黑腺枚残残枚晓照同“可恨相逢

能比R,不知重会罡何年茱桑仔细更出看午夜风打呜,三更月幻床、.

♦城如水玉肌凉、.何物与侬归去、有残帆金炉犹幅略后残.,惜香更杷宝

钗赫近闻处,余丽在,这一香、气味胜从前、•菊有荷枯一夜&:新苞球

叶照林光:竹堡茅台出青黄v;降水痕收.浅弄鳞解工隹洲)酒力渐消风

力软,唱感,破片多情和恋头v烛影择风,一枕伤存绪:归不去:凤楼何

处〉芳草迷归箔:汤发云感/白,壶浮花乳轻网:人间谁敢更争短。斗脏

红心阴面:炙于无人傍屋头,米前晚雨脱相派。连传李子敝貂秀,

附录三:

16

clear

clc

A=zeros(19,19);

forj=l:19

str='C:\Users\李澄\Desktop\sxjm(qi)\fujianer\';

I=imread([str,num2str(j),,.bmp,]);

i2=dither(I);

a=i2(:,72,l);

str=C:\Users\李澄\Desktop\sxjm(qi)\fujianer\';

fori=l:19

I=imread([str,num2str(i),,.bmp']);

i2=dither(I);

mi=i2(:,l,l);

ni=a-mi;

A(j,i)=sqrt(dot(ni,ni));

end

end

a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];

fori=l:19

k=A(i,l);

a(i)=l;

forj=l:19

if(k>A(i,j))

k=A(i,j);

a(i)=j;

end

end

end

first=1;

fori=l:19

forj=l:19

if(A(i,j)=0)

first=j;

end

end

end

str='C:\Users\李澄\Desktop\sxjm(qi)\fujianer\';

z=imread([str,num2str(first),1.bmp']);

for1:18

m=l;

17

str='C:\Users\李澄\Desktop\sxjm(qi)\fujianer\';

x=imread([str,num2str(first),,.bmp,]);

y=imread([str,num2str(a(first)),,.binp,]);

x=z;

z=[x,y];

first=a(first);

end

imshow(z)

附录四

fairofface.

Thecustomer&alwayyright.East,webtzhome'sbebt.

I.iterynotallbeerarid5kittles.,Ihedevillutikb<»tterhisawn.

Mannersmakothman.Many白mickloamuckle.A

man。小cishisownlawyerha<;afoolforhisclicnl.

Yuucan'tmakeasilkpursefromasow'sear.Asthickas

ihinvcs.ClnLhnqmokeIheman.Alllha(glisters沁noigold.

ThepenismightierIhansword,kfairandwiseandgood

andgay.Makelovenotwar.Deviltakethehindmost.Tlie

femaleoitheypeciey、muredeadlythanthemale.Aplace

foreverythingandeverythinginitsphuv.Hellhathnofury

likeawomanqcarnoti.VVhnninKoim\dotheRomans

do.Toerrishuman;Loforgivedivine.Enoughisasgood

asafeast.Peoplewholivehiglasshousesshouldn'tthrow

stung.Ndhireabhorsavacuum.Modeivxtioninallthings.

Everythingcomestohimwhowaits.Tomorrowisanother

day.Bettertolightacandlethantocuitstfthedarkness.

Tvvoiscompany;butLhreo'sacrowd.ICsthesqueaky

wheelthatgetsthegrease.Pleaseenjoytliepainwhichis

unabletoavoid.Don'tteachyourGrandmatosuckeggb.lie

wholivesbytheswurdshalldiebythesword.Don'tmeet

troubleshalt-way.OilandwMcrilon*tmix.Allworkandno

playmakesJackadullbey:

'Ihebebtthingyinlite<JIVfree.I'indei、keepers,li肉

weopnn.Ihern'snoplacelikehome.SpnnkAnl'llyandcarry

abigslick.Musichamcharm>tosoolhoIhosav明。breast.

Ne'ercastaclouttillMaybeout.There/sn<)suchthingasa

iieelunch.NothingvenKire.nothingg<dn.liewhocandoe>,

hevvhuctirinut,te<Jkhe*>.Astitchintime5“\cnine.'Ihediild

iw(hefatheroftheman.Andachildihal'qbornonIheSab-

附录五

clear

clc

fori=1:209

if(i<=10)

imgname=strcat('C:\Users\李澄\Desktop\sxjm(qi)\附件

18

3\00,,num2str(i-l),,.bmp,);

elseif(i<=100)

imgname=strcat('C:\Users\李澄\Desktop\sxjm(qi)\附件

3\0,,num2str(i-l),'.binp,);

else

imgname=strcat('C:\Users\李澄\Desktop\sxjm(qi)\附件

3V,num2str(i-1),,.bmp,);

end

I(:,:,i)=imread(imgname);

left(:,i)=I(:,l,i);

right(:,i)=I(:,72,i);

up(i,:)=I(l,:,i);

down(i,:)=I(180,:,i);

end

left=int32(left);

right=int32(right);

up=int32(up);

down=int32(down);

mAns=zeros(l,19);

mAns(l)=(15);

fori=2:19

xsd=zeros(1,209);

forj=1:209

ifj==mAns(i-l)

continue

end

xsd(j)=max(sum(abs(right(:,mAns(i-l))-left(:,j))));

fortmp_i=1:209

ifsum(up(tmp_i,:)-255)〜二0

xsd(tmp_i)=9999999;

end

end

fork=l:i-l

xsd(mAns(k))=999999999;

end

end

formatlongg

xsd;

[ma,maid]=min(xsd);

mAns(i)=maid;

%%人工干预

19

ifmAns(i-l)==200mAns(i)=136;end

ifmAns(i-l)==204mAns(i)=170;end

ifmAns(i-l)==170mAns(i)=135;end

ifmAns(i-l)==161mAns(i)=204;end

ifmAns(i-l)==40mAns(i)=32;end

ifmAns(i-l)==32mAns(i)=52;end

ifmAns(i-l)==116mAns(i)=177;end

end

myans=zeros(11,19);

myans(1,:)=mAns;

forhang=2:l1

xsd=zeros(1,209);

forj=1:209

xsd(j)=max(sum(abs(down(myans(hang-1,1),:)-up(j,:))));

fortmp_i=1:209

ifsum(left(:,tmp_i)-255)〜=0

xsd(tmp_i)=9999999;

end

end

fortmp_i=l:hang-l

fortmpj=l:19

xsd(myans(tmp_i,trnpj))=99999999;

end

end

end

formatlongg

xsd;

[m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论