收藏 分销(赏)

碎纸片拼接数学模型教学教材.doc

上传人:a199****6536 文档编号:3779970 上传时间:2024-07-18 格式:DOC 页数:25 大小:366.50KB
下载 相关 举报
碎纸片拼接数学模型教学教材.doc_第1页
第1页 / 共25页
碎纸片拼接数学模型教学教材.doc_第2页
第2页 / 共25页
点击查看更多>>
资源描述
碎纸片拼接数学模型 精品资料 碎纸片的拼接复原问题模型 摘要 本文研究的是碎纸片的拼接复原问题。针对碎纸不同的裁剪特点,我们运用相关性系数法、聚类分析法等建立不同的模型来解决不同裁剪特点和不同纸张的复原问题。 针对问题一,我们利用图像数字化技术,借助MATLAB软件将题目中附件1,2所给的图片转化为灰度值矩阵,并作二值化处理,然后取出每个矩阵第一列和最后一列,采用相关系数分析的方法,计算每第一列和每最后一列相关系数,根据相关系数的大小确定相邻的图片,逐步确定各张图片的顺序,最后得到复原的图片。中文文档拼接的顺序为:8,14,12,15,3,10,2,16,1,4,5,9,13,18,11,7,17,0,6,中文文档复原的结果见附录1;英文文档拼接的顺序为:3,6,2,7,15,18,11,0,5,1,9,13,10,8,12,14,17,16,4,英文文档复原结果见附录2。 针对问题二,同样,在将图片二值化处理后,我们运用聚类分析法将纵横裁剪后的图片进行行分类,经过人工干预后,获得需要的矩阵尺寸,然后根据图片的特点运用图片的上下边界和左右边界进行二次匹配,直到找到大致正确的图片排序;同时在必要时,进行二次人工干预,直到获得正确的图片排序。 关键词:碎纸片复原 图像数字化 相关性系数 聚类法 1 问题重述 1.1 问题背景 碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重要的应用。然而,传统的拼接复原工作需由人工完成,准确率较高,但效率很低。特别是当碎片数量巨大,人工拼接很难在短时间内完成任务。随着计算机技术的发展,人们试图开发碎纸片的自动拼接技术,以提高拼接复原效率。本题即是通过一些模型算法开展对碎纸自动拼接技术的研究,具有重要的现实意义。 1.2 要解决的问题 问题一:对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,要求写出干预方式及干预的时间节点。 问题二:对于碎纸机既纵切又横切的情形,要求设计碎纸片拼接复原模型和算法,并针对附件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要人工干预,请写出干预方式及干预的时间节点。 问题三:附件5给出的是一页英文印刷文字双面打印文件的碎片数据。要求设计相应的碎纸片拼接复原模型与算法,并就附件5的碎片数据给出拼接复原结果。 2 模型的假设及符号说明 2.1 模型的假设 (1)假设碎纸机在碎纸时不对碎片造成损坏,可以拼接复原成完整的一页文字; (2)假设各碎纸片大小相等且规则; (3)假设同一页中,文字的种类、行间距和段落分布情况是相同的。 2.2 符号的说明 3 问题分析 针对问题一,要求对来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸片拼接复原的模型和算法。附件1和附件2的碎纸片是经过纵切而成,想要将图片进行还原,必须要在里面取出左右边缘的值,进而对碎纸图片的左右边缘进行匹配就可以还原图像。首先将图片进行图像化处理,获得图片的像素点灰度值矩阵,转化成计算机可以识别且量化的计算机语言,其次,取出每个灰度值矩阵的第一列和最后一列列向量形成新的矩阵,并对其进行二值化处理,最后计算矩阵两列的相关系数,相关性越高,说明这两块碎纸片匹配的概率就越大,最终得出图片复原的排列顺序,将碎纸片进行复原。 针对问题二,附件3和附件4的碎纸图片是经过纵切和横切而成的,相对第一问而言,图片可以直接获取的信息就较少,如像素灰度矩阵变小;如果采取同第一问一样的方法,对图片的匹配而言准确度大为降低,同时还会出现更多的重复匹配。所以要进行碎纸图片还原,首相应该对碎纸进行行分类或者列分类,这里我们选择行分类,同时根据碎纸片的特点,我们进行行内的左右边界匹配,以及对所得行模块进行相关性匹配,对于不能够找到最佳匹配的,我们进行人工干预,直到将整个图片进行复原。 针对问题三, 4 图片数据处理与分析 纵观整个题目,给出的附件均是一整幅图片的碎片集合。根据题目建模的相关要求,需要将图片转化为其像素点灰度矩阵,同时为了降低计算机的计算机的计算强度和为了整个题目的计算过程,我们将图片的像素点灰度矩阵归置为0-1矩阵,即图片的二值化过程。 5 问题一的解答 5.1 建模思路 将图片导入MATLAB软件中对图片进行预处理,以获得图片的像素点灰度值矩阵,进而转化成矩阵之间相关性计算问题。矩阵的计算过程如下:首先,在获得灰度值矩阵后,提取每个矩阵的第一列与最后一列分别得到两个分别是第一列与最后一列的矩阵;其次,把得到的新的灰度值矩阵做二值化处理;再次,利用矩阵两列的相关性系数判断其匹配程度;最后完成图片的拼接复原顺序和输出复原图片。 5.2 模型建立 (1)分别读取19张图片的19个像素点的灰度值矩阵,分别将每个矩阵的第一列取出获得新的矩阵;同时分别将每个矩阵的最后一列取出获得新的矩阵;根据像素的特点,我们以一半像素为分界点,分别将这两个矩阵进行二值化处理得到两个0-1值矩阵BF,BL,处理标准如下: 其中, ,两个0-1矩阵的规模为。 (2)计算两个碎纸片对应0-1矩阵左右两边的相关系数,相关性越高表明这两块碎纸片匹配的概率就越大。相关性系数的计算如下: 其中,为各个边缘列的灰度值, 表示灰度值的均方值。 (3)在匹配过程中加入了阈值指标,当两个碎纸片0-1矩阵相关度大于指标时两碎片有匹配可能,当拼接或有多种可能时需加入人工干预人工筛选出与之最匹配的碎片。根据汉字的特点,定义阈值为0.7,说明当相关系数大于0.7时,两列数据有强相关性,即两碎片匹配几率较大。对于英文文章的拼接复原,考虑到英文字符的特点,我们将临界匹配阈值设定为0.6,即当相关性系数大于或等于0.6时,说明两列数据具有强相关性,即两碎片匹配几率较大。 本文从相关系数表中提取系数大于阈值的各边缘的相关系数: 表1:汉字纸片的阈值设定 汉字碎片阈值 相关性 无相关性 弱相关 强相关 表2:英文纸片的阈值设定 汉字碎片阈值 相关性 无相关性 弱相关 强相关 5.3模型的求解及结果分析 根据以上模型,运用MATLAB软件编程(源程序见附录3、4),得到图片的拼接复原顺序,见表1和表2。中文文档复原结果见附录1,英文文档复原结果见附录2。 表1:中文文档的图片复原排序 8 14 12 15 3 10 2 16 1 4 5 9 13 18 11 7 17 0 6 表2:英文文档的图片复原排序 3 6 2 7 15 18 11 0 5 1 9 13 10 8 12 14 17 16 4 从中文、英文文档的复原结果可以看出,拼接后的图像字迹清晰,内容完整,说明本题的模型和算法能有效地实现纵切文档图像的拼接复原。 6 问题二的解答 6.1建模思路: 对于纵横切的情形,在增加横切之后,两图片边界处共同信息量大大减少,故需要更进一步地挖掘可用信息,如图片的四个边界信息。纵观整个问题,我们作如下考虑: (1)用问题一的方法对图像进行预处理,分别构建反映中、英文文档行特征的特征向量以及确定需要扫描像素行的行数; (2)通过分别建立特征匹配模型,左右边界匹配模型,上下边界匹配模型三个模型,完成单页打印横纵切纸片匹配模型的构建; (3)对模型进行求解,特别的,特征匹配模型求解后加入人工干预,最后复原出整个图片。 6.2 模型建立 6.2.1模型的准备 (1)对于图像的处理,同第一问一样,我们使用MATLAB软件读取每张图片的灰度值矩阵,并进行二值化处理,转化为0-1值矩阵。 (2)构建中文特征灰度条向量(聚类分析) 特征灰度条是指记录图片中文字的行方向信息的列向量,建造特征灰度条的方法为:对于预处理后的图像,建造一个与碎片的图像行数一致的列向量,对图像中像素行进行扫描,若此行中有像素值为 0 的点,则将列向量中相同行处的值设为 0,否则设为 1。图 000.bmp 的特征灰度条如图 1 所示 图1 000.bmp及其灰度条 特征灰度条的列向量为: 便可得到每张碎纸片的特征灰度条。若某两张碎片的灰度条相似程度达到精度要求,则它们就具有相同的图像行特征,位于原文件的同一行。 (3)确定扫描像素行的行数 扫描一幅图片的像素点,其自然的思路就是对第张图像的每一行进行扫描,得到每行的像素值。但在构造特征灰度条矩阵的时候,发现了一些特殊情况,如下图所示: 图 特殊情况举例 编号为008 和编号为 009的图片可以认为判断他们是左右相邻的,由于图片的下部是空白部分,在匹配过程中可能出现,重复匹配的情况,即原本不该归为一类的情况可能放在一起,为此我们根据图片与汉字的特点,我们在进行扫描时尽量扫描图片的三分之二的高度区域。这样可以减轻计算的复杂度,避免结果的冗余,提高结果的准确性。按照每张图片的像素矩阵尺寸,我们设定的扫描行数定为120行。 6.2.2 建立横纵切纸片匹配模型 (1).聚类分析模型 将碎片与碎片进行特征比较,(),即求碎片的特征列向量和碎片的特征列向量对应元素差的绝对值,再求和,得到特征值 考虑到每个汉字或英文字母结构的差异性,位于同一行文字的高度可能会出现微小的偏差,很难出现特征灰度条相同(即)的情况,若取作为判断原则,那么原本位于同一行的两张图片可能因为这微小的偏差而归于不同的行集合中。 取一个合适小的置信区间,若,则认为碎片与碎片来源于文件的同一行。 (2)建立左右边界匹配模型 本问中的左右边界匹配模型相对于第一问中的边界匹配模型而言,差异性在于问题一中的边界匹配模型是19条纵向大长条,信息量大,而本问中是纵向小长条,信息量小。 问题二中的左右边界矩阵为; (3)建立上下边界匹配模型 将第张图篇的上、下边界处的元素分别存于矩阵的第一行、第二行中。即上下边界匹配模型中第k行的上下边界矩阵为: 故模型的构建如下: 1、 上边界匹配模型的构建 将第行的上边界与第()行的下边界进行上边界匹配,即求第行的边界矩阵的第一行与第行的边界矩阵的第二行对应列元素的差,再求差的绝对值的和 将第行的上边界依次与其余的任意一行的下边界进行上边界匹配,得到个值:,通过比较,取这个值中的最小值,作为上边界匹配值。 2、下边界匹配模型的构建 将第行的下边界与第()行的上边界进行下边界匹配,即求第行的边界矩阵的第二行与第行的边界矩阵的第一列对应列元素的差,再求差的绝对值的和 将第行的下边界依次与其余的任意一行的上边界进行下边界匹配,得到个值:,通过比较,取这个值中的最小值,作为上边界匹配值。 3、最佳边界匹配模型的建立 取第行,先与任意一行()依次进行上匹配,求得,再与任意一行依次进行下匹配,,取两者之间的最小值 对应的匹配方式即为第行与第行的最佳匹配方式。若,则说明第行上边接于第行的下边;,说明第行的下边与第行的上边相连。 综上,我们构建的横纵切纸片匹配模型为: 6.3 模型的求解 (1)根据以上模型,运用MATLAB编程(源程序间附录),得到每行集合的碎片个数,附件3(中文)对应的15个行集合中碎片个数,如表所示: 表4:15行中每行的碎片个数 行集合的编号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 碎图片的个数 19 19 19 18 15 19 19 19 3 2 18 16 18 1 4 由上表知道:包含19个碎图片行集合的个数有6个,编号分别为:1、2、3、6、7、8,这6个可以唯一对应原文件的6个图像行;行集合的包含的图片个数大于10且小于19的行的个数有5,分别的标号为:4、5、11、12、13,这些行集合包含于原文件图片组成的行。而行集合中元素个数小于10的行的个数有4个,行集合编号分别为:9、10、14、15。 由于附件中的图片是11×19个,所以需要将4个行集合中的图片分配到5个行集合中去。 (2)此外还得到了每行所包含的图片编号,考虑到数据过多,仅列举其中三行,见表5。 行集合的编号 碎图片的编号 1 2 (3) 人工干预 结合附件3、4中11×19规模的文件,在特征匹配模型求解完成后加入第一次人工干预,即将表5中4个行集合中的图片元素通过与对应的5个行集合的图片进行人工配对,来人为生成与原文件相同的11个行集合。具体的人工配对方法如下: a.按行集合编号的顺序选择9集合中的一个图片,通过文义匹配和边缘断线匹配的方法,将其与集合4、5、11、12、13中各抽取出一个图片共5张图片,进行依次比较,如果与某行集合中的那个图片匹配成功,就将这个图片存入该行集合中; b.循环进行a的步骤,直至将集合9、10、14、15中共计10个图片分别归于各自的行集合中。 在最不利的情况下,需要匹配次,而在最有利的情况下只需配对9次。可见,人工干预的复杂度不高,从而充分发挥了人工智能的准确度高的优点,而且很好的规避了人效率不高的缺点。+ + + + ´ 通过人工干预,将未分配的图片归入对应的行中之后,利用左右边界匹配模型对附件三中每一行图片进行横向排序,使行内图片排列固定下来。附件3中的各类图片的排列顺序如表7: 复原结果 将已经得到的行内图片排列顺序以及行与行之间的排列顺序相结合,便可以得到各个碎图片在原文件中的位置,从而将原文件复原。附件3(中文)复原的图片排列顺序见表6,复原结果见附录。 表7:附件3(中文)复原的图片排序 49 54 65 143 186 2 57 192 178 118 190 95 11 22 129 28 91 188 141 61 19 78 67 69 99 162 96 131 79 63 116 163 72 6 177 20 52 36 168 100 76 62 142 30 41 23 147 191 50 179 120 86 195 26 1 87 18 38 148 46 161 24 35 81 189 122 103 130 193 88 167 25 8 9 105 74 71 156 83 132 200 17 80 33 202 198 15 133 170 205 85 152 165 27 60 14 128 3 159 82 199 135 12 73 160 203 169 134 39 31 51 107 115 176 94 34 84 183 90 47 121 42 124 144 77 112 149 97 136 164 127 58 43 125 13 182 109 197 16 184 110 187 66 106 150 21 173 157 181 204 139 145 29 64 111 201 5 92 180 48 37 75 55 44 206 10 104 98 172 171 59 7 208 138 158 126 68 175 45 174 0 137 53 56 93 153 70 166 32 196 89 146 102 154 114 40 151 207 155 140 185 108 117 4 101 113 194 119 123 6.3 结果分析 加入人工干预后,复原后的文件字迹清晰,内容完整,复原的效果良好。检验未加入人工干预计算机排序结果,本题中人工干预只选择图片的首序列,对图片的排列顺序没有任何影响,所以附件3(中文)的排序正确率为90.4%,附件4(英文)的排序正确率为65.1%。 由此可得,此模型能很好的解决中文单页打印横纵切纸片的拼接复原问题,而对于英文单页打印横纵切纸片的拼接复原效果不理想。 7 问题三的解答 8 模型的评价、改进及推广 8.1 模型的评价 优点: (1)问题一中的模型和算法不需要复杂的图像与处理过程,简单方便,误差小,在没有异常情况下,无需进行人工干预,并且拼接效果良好。 (2)问题二的模型中对于中文和英文的字符特点进行了充分挖掘,使得模型对于中文和英文的匹配准确度较高。 缺点: (1)本题的模型只适合于图像畸变小切割规则的碎片拼接,对于不规则的碎图片的拼接则不适用 (2)三个模型在对碎片进行拼接复原时都没有考虑到碎片的方向问题,没有采用坐标旋转的方法拼接碎片。 8.2 模型的改进 (1)模型中针对的碎纸片形状都是规则的矩形,而实际情况的碎纸片往往是不规则的,为了提高模型的适用性,可以考虑将形状的匹配纳入我们的模型。 (2)模型中没有考虑实际情况中可能存在彩色字体,在碎纸片拼接的实际应用中可以考虑将颜色作为匹配的依据,这样能够适当提高模型的准确性。 8.3 模型的推广 本题的模型可以推广到医学图像分析、遥感图像处理、彩色图像复原和视频监控等领域,具有重要的实际意义。 9 参考文献 [1] 林川,张学新,一种纵切碎纸片拼接算法,湖北工程学院学报,2014.05. [2] 孙书省,王立伟,基于数值分析碎纸片拼接复原的研究,安徽工程大学学报,2013.12. [3] 10 附录 附录1:纵切中文文档复原图片 附录2:纵切英文文档复原图片 附录3:纵切中文文档还原程序 %纵切碎纸片的复原拼接程序 clear; clc; %读取附件1中每幅图片的数据(编号与图片编号对应) a0=imread('D:\Documents\MATLAB\ 附件1\000.bmp');a1=imread('D:\Documents\MATLAB\附件1\001.bmp'); a2=imread('D:\Documents\MATLAB\ 附件1\002.bmp');a3=imread('D:\Documents\MATLAB\附件1\003.bmp'); a4=imread('D:\Documents\MATLAB\ 附件1\004.bmp');a5=imread('D:\Documents\MATLAB\附件1\005.bmp'); a6=imread('D:\Documents\MATLAB\ 附件1\006.bmp');a7=imread('D:\Documents\MATLAB\附件1\007.bmp'); a8=imread('D:\Documents\MATLAB\ 附件1\008.bmp');a9=imread('D:\Documents\MATLAB\附件1\009.bmp'); a10=imread('D:\Documents\MATLAB\ 附件1\010.bmp');a11=imread('D:\Documents\MATLAB\附件1\011.bmp'); a12=imread('D:\Documents\MATLAB\ 附件1\012.bmp');a13=imread('D:\Documents\MATLAB\附件1\013.bmp'); a14=imread('D:\Documents\MATLAB\ 附件1\014.bmp');a15=imread('D:\Documents\MATLAB\附件1\015.bmp'); a16=imread('D:\Documents\MATLAB\ 附件1\016.bmp');a17=imread('D:\Documents\MATLAB\附件1\017.bmp'); a18=imread('D:\Documents\MATLAB\附件1\018.bmp'); [ma,na]=size(a0);%得到每个图片矩阵的尺寸信息 qianlie=zeros(ma,19);%用于存储a0到a18矩阵的第一列 houlie=zeros(ma,19);%用于存储a0到a18矩阵的末列 zongti=[a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18];%19张图片的总的数据 %讲上述矩阵的第一列放入qianlie矩阵,最后一列放入houlie矩阵 for i=1:19 qianlie(:,i)=zongti(:,na*(i-1)+1); houlie(:,i)=zongti(:,na*i); end %对矩阵进行二值化处理 for j=1:ma for k=1:19 if qianlie(j,k)>127.5 qianlie(j,k)=1; else qianlie(j,k)=0; end end end for jj=1:19 for kk=1:ma if houlie(kk,jj)>127.5 houlie(kk,jj)=1; else houlie(kk,jj)=0; end end end %计算两个矩阵的每列之间的相关系数 for i=1:19 for j=1:19 xiangguanxishu(i,j)=corr(qianlie(:,i),houlie(:,j)); end end %将相关系数矩阵中的nan元素换成0元素 for i=1:19 for j=1:19 if isnan(xiangguanxishu(i,j)) xiangguanxishu(i,j)=0; end end end xlswrite('相关系数表.xls',xiangguanxishu);%将求取的相关系数存入Excel表格中 liehe=sum(xiangguanxishu,1);%求取矩阵每列的和 hanghe=sum(xiangguanxishu,2);%求取矩阵每列的和 [row1,col1]=find(liehe==0);%找到0元素,得到最末张图片序号 [row2,col2]=find(hanghe==0);%寻找0元素,得到最开始张图片序号 shunxu=zeros(1,19);%用于存储图片的排列顺序 %将始末图片的序号存储到矩阵中 shunxu(1)=row2; shunxu(19)=col1; %将剩下的图片一次排序 [m1,n1]=max(xiangguanxishu(:,row2)); shunxu(2)=n1; [m2,n2]=max(xiangguanxishu(:,n1)); shunxu(3)=n2; [m3,n3]=max(xiangguanxishu(:,n2)); shunxu(4)=n3; [m4,n4]=max(xiangguanxishu(:,n3)); shunxu(5)=n4; [m5,n5]=max(xiangguanxishu(:,n4)); shunxu(6)=n5; [m6,n6]=max(xiangguanxishu(:,n5)); shunxu(7)=n6; [m7,n7]=max(xiangguanxishu(:,n6)); shunxu(8)=n7; [m8,n8]=max(xiangguanxishu(:,n7)); shunxu(9)=n8; [m9,n9]=max(xiangguanxishu(:,n8)); shunxu(10)=n9; [m10,n10]=max(xiangguanxishu(:,n9)); shunxu(11)=n10; [m11,n11]=max(xiangguanxishu(:,n10)); shunxu(12)=n11; [m12,n12]=max(xiangguanxishu(:,n11)); shunxu(13)=n12; [m13,n13]=max(xiangguanxishu(:,n12)); shunxu(14)=n13; [m14,n14]=max(xiangguanxishu(:,n13)); shunxu(15)=n14; [m15,n15]=max(xiangguanxishu(:,n14)); shunxu(16)=n15; [m16,n16]=max(xiangguanxishu(:,n15)); shunxu(17)=n16; [m17,n17]=max(xiangguanxishu(:,n16)); shunxu(18)=n17; fuyuan=shunxu-1; xlswrite('图片复原的排列顺序.xls',fuyuan);%将重新排列的图片顺序输出 xintu=zeros(ma,19*na);%生成全0矩阵用于存储重新排序的矩阵 for i=1:19 j=shunxu(i); xintu(:,na*(i-1)+1:na*i)=zongti(:,na*(j-1)+1:na*j); end imshow(xintu);%绘画重新排列的图片 附件4:纵切英文文档复原程序 %纵切碎纸片的复原拼接程序 clear; clc; %读取附件1中每幅图片的数据(编号与图片编号对应) a0=imread('D:\Documents\MATLAB\ 附件2\000.bmp');a1=imread('D:\Documents\MATLAB\附件2\001.bmp'); a2=imread('D:\Documents\MATLAB\ 附件2\002.bmp');a3=imread('D:\Documents\MATLAB\附件2\003.bmp'); a4=imread('D:\Documents\MATLAB\ 附件2\004.bmp');a5=imread('D:\Documents\MATLAB\附件2\005.bmp'); a6=imread('D:\Documents\MATLAB\ 附件2\006.bmp');a7=imread('D:\Documents\MATLAB\附件2\007.bmp'); a8=imread('D:\Documents\MATLAB\ 附件2\008.bmp');a9=imread('D:\Documents\MATLAB\附件2\009.bmp'); a10=imread('D:\Documents\MATLAB\ 附件2\010.bmp');a11=imread('D:\Documents\MATLAB\附件2\011.bmp'); a12=imread('D:\Documents\MATLAB\ 附件2\012.bmp');a13=imread('D:\Documents\MATLAB\附件2\013.bmp'); a14=imread('D:\Documents\MATLAB\ 附件2\014.bmp');a15=imread('D:\Documents\MATLAB\附件2\015.bmp'); a16=imread('D:\Documents\MATLAB\ 附件2\016.bmp');a17=imread('D:\Documents\MATLAB\附件2\017.bmp'); a18=imread('D:\Documents\MATLAB\附件2\018.bmp'); [ma,na]=size(a0);%得到每个图片矩阵的尺寸信息 qianlie=zeros(ma,19);%用于存储a0到a18矩阵的第一列 houlie=zeros(ma,19);%用于存储a0到a18矩阵的末列 zongti=[a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18];%19张图片的总的数据 %讲上述矩阵的第一列放入qianlie矩阵,最后一列放入houlie矩阵 for i=1:19 qianlie(:,i)=zongti(:,na*(i-1)+1); houlie(:,i)=zongti(:,na*i); end %对矩阵进行二值化处理 for j=1:ma for k=1:19 if qianlie(j,k)>127.5 qianlie(j,k)=1; else qianlie(j,k)=0; end end end for jj=1:19 for kk=1:ma if houlie(kk,jj)>127.5 houlie(kk,jj)=1; else houlie(kk,jj)=0; end end end %计算两个矩阵的每列之间的相关系数 for i=1:19 for j=1:19 xiangguanxishu(i,j)=corr(qianlie(:,i),houlie(:,j)); end end %将相关系数矩阵中的nan元素换成0元素 for i=1:19 for j=1:19 if isnan(xiangguanxishu(i,j)) xiangguanxishu(i,j)=0; end end end xlswrite('相关系数表.xls',xiangguanxishu);%将求取的相关系数存入Excel表格中 liehe=sum(xiangguanxishu,1);%求取矩阵每列的和 hanghe=sum(xiangguanxishu,2);%求取矩阵每列的和 [row1,col1]=find(liehe==0);%找到0元素,得到最末张图片序号 [row2,col2]=find(hanghe==0);%寻找0元素,得到最开始张图片序号 shunxu=zeros(1,19);%用于存储图片的排列顺序 %将始末图片的序号存储到矩阵中 shunxu(1)=row2; shunxu(19)=col1; %将剩下的图片一次排序 [m1,n1]=max(xiangguanxishu(:,row2)); shunxu(2)=n1; [m2,n2]=max(xiangguanxishu(:,n1)); shunxu(3)=n2; [m3,n3]=max(xiangguanxishu(:,n2)); shunxu(4)=n3; [m4,n4]=max(xiangguanxishu(:,n3)); shunxu(5)=n4; [m5,n5]=max(xiangguanxishu(:,n4)); shunxu(6)=n5; [m6,n6]=max(xiangguanxishu(:,n5)); shunxu(7)=n6; [m7,n7]=max(xiangguanxishu(:,n6)); shunxu(8)=n7; [m8,n8]=max(xiangguanxishu(:,n7)); shunxu(9)=n8; [m9,n9]=max(xiangguanxishu(:,n8)); shunxu(10)=n9; [m10,n10]=max(xiangguanxishu(:,n9)); shunxu(11)=n10; [m11,n11]=max(xiangguanxishu(:,n10)); shunxu(12)=n11; [m12,n12]=max(xiangguanxishu(:,n11)); shunxu(13)=n12; [m13,n13]=max(xiangguanxishu(:,n12)); shunxu(14)=n13; [m14,n14]=max(xiangguanxishu(:,n13)); shunxu(15)=n14; [m15,n15]=max(xiangguanxishu(:,n14)); shunxu(16)=n15; [m16,n16]=max(xiangguanxishu(:,n15)); shunxu(17)=n16; [m17,n17]=max(xiangguanxishu(:,n16)); shunxu(18)=n17; fuyuan=shunxu-1; xlswrite('图片复原的排列顺序.xls',fuyuan);%将重新排列的图片顺序输出 xintu=zeros(ma,19*na);%生成全0矩阵用于存储重新排序的矩阵 for i=1:19 j=shunxu(i); xintu(:,na*(i-1)+1:na*i)=zongti(:,na*(j-1)+1:na*j); end imshow(xintu);%绘画重新排列的图片 附件5 图片的聚类分析 %%%%%%%%%%提取数据%%%%%%%%%%%% clear; clc m=1; n=1; q=1; for k=0:208 if k<10 t=strcat('00',int2str(k),'.bmp'); a1{m}=jz01zh(imread(t)); %它是存储原编号为000-009的图片 m=m+1; end if k>=10 && k<=99 t=strcat('0',int2str(k),'.bmp'); a2{n}=jz01zh(imread(t));%它是存储原编号为010-099的图片 n=n+1; end if k>=100 t=strcat(int2str(k),'.bmp'); a3{q}=jz01zh(imread(t));%它是存储原编号为100-208的图片 q=q+1; end end a=[a1,a2,a3]; %将新得到的数据重新放入矩阵a中 for k=1:209 %获取边界矩阵 temp=a{k}; [row col]=size(temp); %求解矩阵的尺寸 br=temp(:,col); %右边界矩阵 bl=temp(:,1); %左边界矩阵 bu=temp(1,:); %上边界矩阵 bd=temp(row,:); %下边界矩阵 bound1{k}=[bl,br]; %总的左右边界矩阵 , 每一个小元包是180*2
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服