拼图问题数模.docx

上传人:b****3 文档编号:2937401 上传时间:2022-11-16 格式:DOCX 页数:22 大小:1.34MB
下载 相关 举报
拼图问题数模.docx_第1页
第1页 / 共22页
拼图问题数模.docx_第2页
第2页 / 共22页
拼图问题数模.docx_第3页
第3页 / 共22页
拼图问题数模.docx_第4页
第4页 / 共22页
拼图问题数模.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

拼图问题数模.docx

《拼图问题数模.docx》由会员分享,可在线阅读,更多相关《拼图问题数模.docx(22页珍藏版)》请在冰豆网上搜索。

拼图问题数模.docx

拼图问题数模

拼图问题

摘要

本文研究被规则切割的图片的拼接复原问题。

使用MATLAB软件得到图片的RGB值后,我们建立了RGB颜色模型、欧氏距离模型以及贪婪算法模型。

以图片上下边缘RGB值作为解决问题的基础,以欧氏距离作为图片拼接的具体判断依据,并根据贪婪算法的思想得出最优的图片拼接结果。

针对问题一,首先将16张被切割的图片上边缘与原始图上边缘的RGB值进行欧氏距离比较,确定第一行的四张图片。

然后分别将第一行图片下边缘与其他图片上边缘RGB值进行欧氏距离比较,循环进行,直至得出全部四行四列图片的正确排列。

针对问题二,由于没有原始图,我们将16张图片分别假设位于第一行,根据贪婪算法,找出最可能位于其下方的其他三张图片。

至此得出16列可能的图片组合,然后进行人工筛选剔除上下拼接明显不正常的图片组合,最后得出四行四列图片的正确排列。

 

关键词:

Matlab图像处理RGB颜色模型(图像的数字化处理模型)欧氏距离贪婪算法边缘匹配度

 

一、问题重述

拼图是一种解决平面空间填充和排列难题的益智游戏,要求玩家将印有局部图案的扁平零片进行拼组从而展现出完整图案。

在图像处理的计算机时代,为了解决这样一个图片拼接复原的问题,其核心是碎图片的图像信息的科学提取和算法处理等。

请讨论以下问题:

1.对于给定原始图像的碎片,如何对附件1中整齐划割的图像进行拼接复原。

复原过程不需要进行人工干预。

复原结果以图片形式及表格形式表达。

2.对于未给定原始图像的碎片,如何对附件2中整齐划割的图像进行拼接复原。

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

复原结果表达要求同上。

二、问题分析

考虑到所要拼接复原的图片都是被规则切割的,我们可以使用MATLAB软件得到图片的数字信息。

由于以BMP格式储存的图片读入MATLAB后是主要以灰度值矩阵来储存其图片信息,不能准确地反映彩色图像的特征,所以我们首先要将图片格式全部转化为JPG格式,以得到图片的RGB值矩阵。

得到RGB值后,我们并不需要用到全部的值,而只需要用到其上下边缘的RGB值,并以此作为解决问题的基础,另外采用欧氏距离的概念作为图片拼接的具体判断依据,由此确定图片之间的边缘匹配度。

在问题一中,基于题目已给出原始图片,首先将16张被切割的图片上边缘与原始图上边缘的RGB值进行欧氏距离比较,确定第一行的四张图片。

注意在这一步骤中,16张被切割的图片的大小是不一致的(存在137×91、137×92、138×91、138×92四种尺寸情况),所以在进行被切割的图片之间的欧氏距离计算式我们均采用上下边缘的前面137个像素点的RGB值进行计算。

在之后的叙述中均为如此,不再进行特别说明。

在进行被切割的图片与原始图片的比较时,首先采用其上边缘的前137个像素点的值进行欧氏距离计算,在得出第一行的第一张图片后,将原始图上边缘的像素点除去第一张图片上边缘全部像素点个数,然后用随后的137个像素点与其他被切割的图片进行计算比较,得出第一行第二张图片。

以此类推直至得出第一行全部四张图片。

然后将第一行的第一张图片作为目标图片,选取其下边缘137个像素点的RGB值,与其他15张图片的上边缘137个像素点的RGB值做欧氏距离计算,得出与其距离值最小的图片,即为目标图片正下方的一张图片。

再将这张图片作为新的目标图片,重复上述操作,直到找到这一列全部的四张图片

同样对第一行的其他三张图片进行上述的操作,得出正下方的另外三张图片。

至此可以得出16张图片的完整拼图。

针对问题二,由于没有原始图,我们运用贪婪算法,将16张图片分别假设位于第一行,与问题一种确定了第一行的图片相似处理,找出最可能位于其下方的其他三张图片。

至此得出16列可能的图片组合,然后进行人工筛选剔除上下拼接明显不正常的图片组合,最后得出四行四列图片的正确排列。

注意在问题二中,所给图片的大小都是一致的,因此在进行RGB值的欧氏距离计算式不用考虑问题一中的情况,直接将上下边缘全部像素点的RGB值进行欧氏距离计算。

三、模型假设

1、假设将图片格式由BMP格式转化为JPG格式后不会影响到图片读入MATLAB后所给出的数字信息;

2、假设在问题一的处理中部分舍去上下边缘第138各像素点RGB值的图片在进行之后的欧氏距离的计算时不会受到影响;

3、假设图片在被切割的过程中边缘没有受到严重的损坏;

4、假设扩展的欧氏距离计算公式能够反映图片之间的实际匹配度;

5、假设贪婪算法在多次循环使用中所得出的结果是一致的。

 

四、符号说明

符号

符号说明

R

三原色中的红色

G

三原色中的绿色

B

三原色中的蓝色

m

像素点在图片中所在的行位置

n

像素点在图片中所在的列位置

第i张图片的上边缘RGB矩阵

第i张图片的下边缘RGB矩阵

矩阵第j行k列的元素,k取1、2、3分别对应R、G、B值

矩阵第j行k列的元素,k取1、2、3分别对应R、G、B值

D

欧氏距离的计算结果

五、模型的建立

5.1RGB颜色模型

我们也可以说是图像的数字化处理模型。

5.1.1RGB颜色模型简介

RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。

RGB色彩模式使用RGB模型为图像中每一个像素的RGB分量分配一个0~255范围内的强度值。

RGB图像只使用三种颜色,就可以使它们按照不同的比例混合,在屏幕上呈现16777216(256×256×256)种颜色。

RGB是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和,越混合亮度越高,即加法混合。

红、绿、蓝三个颜色通道每种色各分为255阶亮度,在0时“灯”最弱——是关掉的,而在255时“灯”最亮。

当三色数值相同时为无色彩的灰度色,而三色都为255时为最亮的白色,都为0时为黑色。

故可以建立以红色R、绿色G、蓝色B为坐标轴的三维坐标体系,其示意图如下:

5.1.2RGB颜色模型的具体实现

在MATLAB中RGB图象也被称为真彩图像,在8位型数据储存形式下,图片的RGB值储存时只需要一个m×n×3阶的三维图像数据矩阵,每一面中元素下标对应于图像像素点的下标(m,n),而元素值对应一个基色(红、绿、蓝),3个面组合构成其真色。

其中元素值的范围为(0,255)。

通过图形的RGB值,我们便可以了解到图形的具体特征。

尤其针对我们所研究的被纵横切割的图片,都是规则的矩阵形状,使用MATLAB软件便可以得出图片的RGB值矩阵。

另外由于所要处理的问题是图片拼接问题,所以我们主要研究图片的边缘RGB值,即取m为1或是图片最大行数,将n全部取到,将对应的RGB值存入二维矩阵中,这样就便于我们计算。

操作过程示意图如下:

我们将上边缘RGB值存入矩阵A中,将下边缘RGB值存入矩阵B中,如下:

A=

B=

行数为为上下边缘像素点个数,三列分别代表R、G、B值。

通过边缘之间RGB值比较和匹配来进行图片的拼接。

5.2欧氏距离模型

5.2.1欧氏距离简介

欧几里得度量(euclideanmetric)即欧氏距离是一个通常采用的距离定义,指在多维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。

在二维和三维空间中的欧氏距离的就是两点之间的实际距离。

欧氏距离变换在数字图像处理中的应用范围很广泛,距离是描述像素建关系的基本参数,也是目标物几何特征和相似度的重要测度。

5.2.2欧氏距离的具体计算

我们在运用欧氏距离模型时,实际是运用了距离的这一种度量方式,并在

欧氏距离计算公式的基础上进行了进一步扩展。

具体计算方式如下:

以切割后图片中的第一张为例,读取其下边缘RGB值矩阵

(138×3的二维矩阵),另任取一张图片的上边缘RGB值矩阵

(以第三张为例,137×3的二维矩阵):

=

=

则欧氏计算公式可表示为:

D=

注意由于两个矩阵的行数不一我们舍弃了矩阵

的最后一行RGB值。

通过将某张图片与多张图片进行欧氏距离的计算,最后以D的值作为判断依据,D越小,说明两组数据的欧氏距离越小,也就是说边缘匹配度越高。

由此找出相匹配的图片。

5.3贪婪算法模型

5.3.1贪婪算法简介

当一个问题的状态空间很大时,穷举法计算量可能会太大,而贪婪算法的思想则是采取目前看来最接近解状态的选择方案,它是一种不追求最优解,只希望得到较为满意解的方法。

贪婪算法常以当前情况为基础做最优选择,而不考虑各种可能的整体情况,贪婪算法采用逐步构造最优解的方法,一般贪婪算法将构造可行解的工作分工作阶段来完成,在每个阶段,选择那些在一定的标准下是局部最优的方案,期望各阶段的局部最优的选择带来整体最优。

贪婪算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。

5.3.2贪婪算法步骤

(1)确定要拼接的图片个数。

(贪婪算法主要应用于问题二的解决,这里的图片个数为4,即找出某张图片作为第一张图片的这一列最可能的四张图片的组合。

(2)读取图片的上下边缘RGB值,将图片数字化。

(3)确定作为基准的图片,将其下边缘RGB值与其他图片上边缘RGB值进行欧式距离计算,得到最可能位于其正下方的图片。

(4)将步骤(3)得出的图片作为基准图片重复步骤(3)直到找出以第一张基准图片为第一张图片的这一列的全部四张图片。

(5)将16张图片依次作为第一张基准图片,进行步骤(3)、(4)的操作,直到得到16列由贪婪算法的图片组合。

 

六、模型的求解

6.1问题一的求解

6.1.1问题一求解的操作流程图

图一:

问题一求解流程图

6.1.2问题一求解的实际操作过程

将问题一中所给图片转化为JPG储存格式后将图片读入MATLAB中,得到图片的RGB值,并提取图片上下边缘的RGB值。

将16张切割后的图片的上边缘的137个像素点的RGB值分别与原始图片上边缘的前137个像素点的RGB值进行欧式距离计算,得出与其距离值最小的图片,即为图片拼接的第一行的第一张图片。

如下图所示:

图二:

第一张图片确定方法

得出第一张图片后,将16张切割后的图片的上边缘的137个像素点的RGB值与原始图片上边缘减去第一张图片上边缘的像素点数后紧接着的137个像素点的RGB值进行欧式距离计算,同样得出与其距离值最小的图片即为第一行的第二张图片。

然后根据同样的方法得出第一行的全部四张图片,如下:

图三:

第一列全部四张图片

将第一行的第一张图片作为目标图片,选取其下边缘137个像素点的RGB值,与其他15张图片的上边缘137个像素点的RGB值做欧式距离计算,得出与其距离值最小的图片,即为目标图片正下方的一张图片。

然后将这张图片作为新的目标图片,重复上述操作,直到找到这一列全部的四张图片。

如下图所示:

图四:

第一列图片确定方法

然后,对第一行的其他三张图片进行同样的操作,得出正下方的另外三张图片。

至此可以得出16张图片的完整拼图。

上述操作都在MALAB软件中编写程序进行,无须任何人工操作。

具体程序代码见附录一。

6.1.3问题一的求解结果

根据题目所给16张切割后的图片的编号1—16,将6.1.2求解得出的结果列入4×4表格中如下:

表一:

问题一图片正确拼接顺序

15

9

12

4

5

11

7

8

2

10

6

3

13

14

1

16

具体图片拼接结果如下:

图五:

问题一图片拼接结果

6.2问

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1