课程设计论文
基于结构特征的碎纸片的拼接复原问题
基于结构特征的碎纸片的拼接复原问题
摘要
碎纸自动拼接技术是图像处理与模式识别领域中的一个典型的应用,该技术通过
扫描和图像提取技术获取一组碎纸片的形状、纹理及内容等信息,然后利用计算机进行
相应理解从而实现对这些碎纸片的全自动或半自动拼接还原。
针对问题一,考虑到纵切的碎纸片所含有的信息量较大,利用图像处理中的信号匹
配方法,结合左右两个碎纸片的灰度像素矩阵的边缘特征,建立基于结构特征的灰度匹
配模型,对英文字母制定了灰度相似的配准规则,使待拼接的碎纸片边缘的对应行像素
之差的平方和最小;而结合中文字符的横笔结构特征,对中文字制定了“横笔”匹配相
似度的配准规则,并给出了最终的碎纸拼接图和拼接次序,拼接的正确率是100%。
针对问题二,对于既纵切又横切的情形,每一个纸片的边缘所含的信息量相对较少,
故对中、英文碎片的拼接复原需各自建模分析。首先利用“分而治之”的思想,将一个
难以直接解决的大问题,分割成一些规模较小的相同问题。对于中文碎片拼接复原,根
据中文的方块特点,给出了中文的文字结构特征向量及其边缘像素的特征向量。根据这
些结构特征向量对所有的碎纸片进行粗分类,在此基础上设计了基于边缘特征的匹配规
则集,对每一行从左到右在进行细匹配。利用等距序列图像的快速拼接技术拼出左边第
一列,基于灰度匹配,将图像转化为二值图像并对每行进行最优匹配。先按照行配准,
然后再进行列配准,最终匹配出误差最小的图像;对于英文碎片复原同样采取人工干预
粗分类,粗匹配后,采用神经网络算法对碎片图像训练、学习构建BP网络对英文字母进
行匹配识别,结合剪枝定界法实现英文碎片的拼接复原。发现每行匹配率为78.85%,整
篇匹配率大约为68.73%。
针对问题三,由于碎片数据均为双面打印文件,文字特征相同,仅用问题二中的方
法产生的误差太大,仍沿用粗分类特点通过神经网络拼接、灰度匹配修正、人工干预,
结合等距序列拼接技术实现单面拼接,然后验证反面的正确性并修正。
关键词:图像拼接,灰度配准,结构特征,配准规则,神经网络
一、问题重述
破碎文件的拼接在司法物证复原、历史文献修复以及军事情报获取等领域都有着重
要的应用。拼接复原工作若由人工完成,准确率较高,但效率很低。特别是当碎片数量
巨大,人工拼接很难在短时间内完成任务。现试图开发碎纸片的自动拼接技术,以提高
拼接复原效率。我们需要建立数学模型解决以下问题:
1.对于给定的来自同一页印刷文字文件的碎纸机破碎纸片(仅纵切),建立碎纸
片拼接复原模型和算法,并针对附件1、附件2给出的中、英文各一页文件的碎片数据
进行拼接复原。如果复原过程需要人工干预,写出干预方式及干预的时间节点。
2.对于碎纸机既纵切又横切的情形,设计碎纸片拼接复原模型和算法,并针对附
件3、附件4给出的中、英文各一页文件的碎片数据进行拼接复原。如果复原过程需要
人工干预,写出干预方式及干预的时间节点。
3.现实情形中可能有双面打印文件的碎纸片拼接复原问题需要解决。附件5给出的是
一页英文印刷文字双面打印文件的碎片数据。尝试设计相应的碎纸片拼接复原模型与算
法,并就附件5的碎片数据给出拼接复原结果。
二、问题分析
碎纸自动拼接复原技术在司法鉴定,历史研究等领域都有着广泛的应用。近年来,
随着德国斯塔西文件的恢复工程的公布,碎纸文件复原技术的研究引起了人们的广泛关
注。碎纸自动拼接技术是模式识别领域中的一个很典型的应用。涉及数字图像处理,机
器学习等多个学科,充分体现了当下多学科相互融合的学科特点,这也正说明了碎纸自
动拼接本身具有一定的难度。匹配技术是碎纸自动拼接技术的关键,它可以分为两个
步骤:局部拼接和全局恢复。局部拼接是指碎片两两之间的拼接问题,全局拼接是关于
一组碎片之间的匹配问题。局部匹配技术可以分为两类,一类比较具体,多对应图像低
层像素或像素的集合,统称为图像匹配;另一类则比较抽象,主要与图像或目标的性质
有关统称为广义匹配。图像匹配包括模板匹配、目标匹配和动态模式匹配。广义匹配包
括关系匹配、线图同构和特征内容匹配。特征内容匹配包括颜色匹配、纹理匹配、形状
匹配和综合特征匹配等。目前对碎纸拼接的研究,主要应用的是特征内容的匹配,本文
应用其中的轮廓匹配。碎纸拼接中的匹配技术,与传统匹配技术不同,它的特征都是未
知的,没有先验知识可以参考,这也是碎纸拼接的难点。
对于传统破碎文件的拼接,更多的使用破碎纸片的边缘形状提取其轮廓曲线并利用
计算机算法进行拼接,但现今越来越多的破碎纸片拼接问题中破碎纸片的边缘形状都近
似相同,边缘形状拼接不再实用。而对于边缘相似的破碎纸片的拼接,理想的计算机拼
接过程应当与人工拼接的结果相同,但计算机无法完全的识别破碎纸片上带有的信息,
所以对于现有算法只能近似完成破碎纸片的拼接。
针对问题一,因使用碎纸机对纸片进行纵切,每个纵切的纸片所含的信息量较大,
所以对于问题一,利用左右两个纸片的边缘特征,可以制定灰度相似的配准规则,使得
纸片边缘的对应行像素之差的平方和最小,拼接成功率将会更高。
针对问题二,使用碎纸机对纸片进行纵切且横切,问题变的复杂,由于纸片数量多,
且碎纸片包含的信息少,用灰度匹配的话,一定会有较大的误差。如果单纯考虑使用某
种算法在解空间中进行遍历搜索最优匹配,算法的复杂度较高。如何合理的减小误差又
不至于增加太多的工作量,就需要找到恰当的算法和模型对问题一进行优化。我们可以
利用“分而治之”的思想,首先把所有的纸片按照其字符的结构特征(如行间距,列间
距,字高,字宽,字间距等)进行粗分类,然后通过人工干预,拼出左边第一列,先按
照行配准,然后在进行列配准。对于每一行配准,我们可以刻画每个碎纸片的特征,
分为结构特征和边缘像素特征。对于碎纸片,我们在寻找某个边的待选碎片时,可以指
定规则来提升效率,比如在左边匹配时,用行间距过滤掉不符合的碎片(也就是过滤掉
不符合约束条件的取值范围),也就是剪枝定界法;如果带匹配的左边是有黑色数值的,
再用目标碎片右边应该也有黑色数值,且出现的位值相近过滤掉图片;再用拼接好的图
片中的字间距看看是否符合一个字的宽度等。通过配准规则,结合字符的结构特征和边
缘特征,我们应该可以得出第二问的配准图像。
针对问题三,碎片依然被纵切、横切成了209块。但本题中还加入了正反两面,增
加了问题的复杂性,不过建模的总体思想并没有变。首先我们要通过配准规则,结合字
符的结构特征和边缘特征对碎片进行一次拼接,但误差将会很大。为更好的减小误差,
我们可以结合灰度匹配和人工干预对已生成的图像进行修正。
三、符号说明
四、模型假设
结合本题实际,为了确保模型求解的准确性和合理性,我们排除了一些因素的干扰,
提出以下几点假设:
1.假设每条碎纸片都保持完整,无破损。
2.假设碎纸机切纸片的切口都较整齐。
3.假设同一页文件上文字的打印墨浓度相同。
4.假设同一页文件上文字的字体相同,同一页文件上文字只包含中文或者英文。
符号表示含义
P异或逻辑的真值
iA第
i
个碎纸片
,ciji
A
和
j
A
这两个碎纸片相连的可能性
d两碎片上下边缘无字区域行数和
异或运算
ija
碎片矩阵在
,ij
的值
ijb
碎片矩阵在
,ij
的值
||级联运算
5.假设文件上文字颜色不受空气中水分等其他因素的影响.
6.假设图像不许进行降噪、平滑滤波等预处理。
五、模型的建立与求解
5.1模型建立前的准备
5.1.1设置匹配准则集
本题目并不是一个简单的图像拼接问题,所以我们设置包含灰度匹配、基于特征、
BP神经网络、异或运算相结合的匹配准则集。
1.灰度匹配
灰度匹配的基本思想:以统计的观点将图像看成是二维信号,采用统计相关的方法
寻找信号间的相关匹配。利用两个信号的相关函数,评价它们的相似性以确定同名点。
灰度匹配通过利用某种相似性度量,如相关函数、协方差函数、差平方和、差绝对值和
等测度极值,判定两幅图像中的对应关系。最经典的灰度匹配法是归一化的灰度匹配
法,其基本原理是逐像素的把一个以一定大小的实时图像窗口的灰度矩阵,与参考图像
的所有可能的窗口灰度阵列,按某种相似性度量方法进行搜索比较的匹配方法,从理论
上说就是采用图像相关技术。
2.基于特征
大多数完整文字文档的文字行方向和行间距平行且单一,如果碎片内的文字行在碎
片边缘断裂,那么与它相邻的碎纸片在边缘处一定有相同高度、相同间距的文字行,凭
此特征可以很容易得从形状相似的多碎片中挑选出相邻碎片。因文字行的高度特征、间
距特征的识别比字迹断线识别和文字图像的理解实现起来更容易些,利用碎片内文字行
特征拼接相似的碎纸片理论上是可行的。
神经网络
BP(BackPropagation)神经网络,即误差反传误差反向传播算法的学习过程,由
信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的
输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据
信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到
输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出
层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。
误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周
而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网
络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预
先设定的学习次数为止。
4.异或运算
异或逻辑的真值表如图1所示,其逻辑符号如图2所示。异或逻辑的关系是:当
不同时,输出;当相同时,输出。“”是异或运算符号,异或逻辑也
是与或非逻辑的组合,其逻辑表达式为:
由图1可知,异或运算的规则是
0⊕0=0,0⊕1=1
1⊕0=1,1⊕1=0
口诀:相同取0,相异取1
事实上,XOR在英文里面的定义为eitherone(isone),butnotboth,也即只
有一个为真(1)时,取真(1)。
5.1.2“横笔”法的背景
我们查找了汉字的书写方式。汉字的基本笔画为横、竖、撇、点、折。根据张兴初
等1965年在《心理学报》[1]“汉字的各种笔画的使用频率的估计”中的统计结果显示:
横笔占31%,竖笔占16%,撇笔占15%,点笔占12%;张静贤在2004年《汉字教程》[2]中的
统计显示:横笔占27.68%,竖笔占17.60%,撇笔占15.69%,点笔占13.62%。通过比较我
们可以发现在日常生活中运用的汉字“横笔”出现的概率最高。同时,根据“GB130001
字符集汉字字序规范”[3]中的相关统计,目前使用的汉字总共有20902个,平均每个字
12.8画,其中12画的汉字最多,共有1957个。而在“现代汉字常用字表”中,常用汉字
为3500个,平均每个字9.7画,其中9画的汉字最多,一共415个。基于上述数据,可以
推断出“GB130001字符集”中,平均每个汉字有3.54画的横笔,而常用汉字中,平均每
个汉字有2.68画的横笔,可以说横笔在整个汉字结构中出现频次最高,占有重要的地位。
所以我们在带有汉字的碎片拼接时运用了“横笔”拼接法。
5.2问题一的模型建立与求解
5.2.1.目标函数
假设整页文档被碎纸机碎成了
01
{,,,}
n
AAA
个碎纸片的集合,给定一个正确的拼
接排列满足
()
(0)(1)
||||||
n
A
AAAA
其中,||表示了一种级联运算符号。
对于纸片集合,需要识别相连的碎纸片对[5]。例如,
我们用
(,)Cij
表示
i
A
和
j
A
这两个碎纸片相连的可能性。这样碎纸片的正确拼接复
原问题就转化为一个优化问题,目标函数为:
1
0
((),())
n
i
Cij
我们需要搜索所有的拼接排列组合满足使得上述的目标函数最大。
5.2.2.特征选择
对于问题一的目标函数,显然
(,)Cij
表示了碎片
i
A
和
j
A配准的相似度,相似度越
大,说明两个碎片配准的越好。这里考虑到问题一的纵切,每个碎纸片的信息量大,我
们在定义
(,)Cij
时,只需要用到碎纸片的边缘像素特征。具体来说,利用了图像处理
的灰度图像匹配方法[4]进行相似度的计算灰度图像拼接主要是以统计的观点将图像看成
是二维信号,采用统计相关的方法寻找信号间的相关匹配。利用两个信号的相关函数,
评价它们的相似性以确定同名点。灰度匹配通过利用某种相似性度量,如相关函数、协
方差函数、差平方和、差绝对值和等测度极值,判定两幅图像中的对应关系。最经典的
灰度匹配法是归一化的灰度匹配法,其基本原理是逐像素的把一个以一定大小的实时图
像窗口的灰度矩阵,与参考图像的所有可能的窗口灰度矩阵,按某种相似性度量的方法
进行搜索比较的匹配方法。
5.2.3.算法设计与求解
1.中文碎片的拼接
对图片进行两两拼接,对比两个碎片中“横笔”位置,其中“横笔”位置一致的记
录下来,搜索整个碎片边缘,利用目标函数:
记录匹配总和。最终以匹配总和为依据,匹配数最大的两个碎片进行拼接。流程图为图
(1)。
图(1)流程图
算法步骤:
Step1:图像处理
对给定的图像进行灰度处理,生成灰度矩阵[6],并把矩阵二值化。
Step2:边缘最小二乘法计算
选取任两个碎片相邻的边缘数值进行“横笔”和最小二乘法计算。利用最小二乘法
做出残差分析图,见图(2)。
图(2)残差分析图
Step3:图像拼接
利用最小二乘法找出相似度最大的两张图片进行拼接,若出现两对碎片的匹配数一
样时,则进行人工干预,选出最佳拼接。以此类推,最终得到要拼接的图像,图像和代
码见附录(1)。
Step4:检验
重复上述步骤,得出多幅完整图像,人工选出最佳匹配图,得到最左侧和最右侧
的图像并排除匹配顺序,见图(3)。
图(3)图像匹配顺序
2.英文碎片的拼接
在英文字符中几乎不再存在“横笔”,所以这里我们无法在使用“横笔”拼接法。
但是英文碎片生成的灰度矩阵的边界依然存在相似度的特征,所以我们针对英文碎片直
接采用基于最小二乘法的灰度匹配方法。
算法步骤:
Step1:图像处理
对给定的图像进行灰度处理,生成灰度矩阵。
Step2:边缘相似度计算
人工选出最左边的碎片,然后对图片右边缘数组与其他所有的碎片左边缘进行最小
二乘法计算,求出相似度,做出残差分析图,见图(4)。
图(4)残差分析图
Step3:图片拼接
找出相似度最大碎片进行拼接,以此类推拼出全图。图像和代码见附录(2)
Step4:检验
重复上边步骤,生成多幅完整图像,人工选出最佳匹配图,得到最左侧和最右侧的
图像并排除匹配顺序,见图(4)。
图(4)图像匹配顺序
5.3问题二的模型建立与求解
5.3.1问题二的模型建立
1.异或模型
对任一碎片进行二值化,选取右边缘的一列值(x1,x2,x3),选取另一张图片的
左边缘的一列值(y1,y2,y3),根据异或运算准则:0异或0=0,1异或0=1,0异或1=1,
1异或1=0。对相同行的数值进行异或运算,即
P=A⊕B(“⊕”是异或运算符号)
对碎片间相邻两边缘间的异或值进行统计,以此作为对比碎片拼接相似度的依据。主要
目标函数为:
5.3.2问题二的模型求解
1.中文碎片的拼接
在问题二中,碎片共有208个,切碎片大小形状完全一样,但因为每个图片太小,
上边的文字信息太少,所以中文使用“横笔”拼接法的误差太大,所以本题我们改用边
界特征、异或运算、人工干预、最小二乘法等多种匹配方法相结合的方式对模型进行了
改进,流程图为图(5)。
图(5)流程图
具体步骤如下:
Step1:图像处理
对给定的图像进行灰度处理,生成灰度矩阵,并把矩阵二值化。
Step2:边缘碎片选取
利用整体边缘无字光滑的特征,在灰度矩阵中选取最左边向量[x1,x2,x3,x4,x5]全
为1的碎片。
Step3:边缘碎片拼接
利用最小二乘法对碎片上下矩阵边缘进行相似度计算,求出具有最佳相似度的碎片
进行两两拼接。随机取一行,拼接效果如图(6)
图(6)拼接效果图
Step4:边缘碎片再拼接
由于碎片太小,上下边缘包含信息太少,基于最小二乘法的边缘相似度拼接并不能
够达到满意效果。所以我们利用行距对上步拼接结果进行再次拼接。
分别对Step3中7张新纸片计算上下边缘无字区域所占行数,然后7张纸片两两首尾
无字区域行数求和,记为d,如图(7)所示。倘若或时,则
可认为两碎片可以进行拼接,否者不能拼接。拼接流程见图(8)。以此类推共得出以
下几种结果。如图(9)所示
注:
时,表示行间距为28~31像素;
时,表示两个行间距加字高为96~102像素;
图(7)
图(8)
图(9)
Step5:人工干预
人工的方式在这几种拼接方式中选出最佳拼接(方案三),作为完整图像的左边界。
Step6:文字行特征分类
把左边界的11个碎片依据文字行特征进行分类。依据11中分类把剩余碎片进行分
类,使具有相同高度和间距文字行的碎片归为一类。
Step7:异或运算拼接
以左边界碎片为起点,对同类碎片进行边缘异或运算。即:选取相邻边缘向量[x1,
x2,x3,x4]、[y1,y2,y3,y4],若同行的点的值相同则记为0,不同记为1。最后统计0
的个数f,当f>阈值时则认为两碎片可以进行拼接,否者舍弃。并在所有的比拼中选取
f值最大的一个碎片与预定图片进行拼接。以此类推拼接出完整图像。
Step8:检验
多次重复上述步骤产生多幅图像,人工筛选出最佳拼接图像。代码及图像见附录。
2.英文碎片的拼接
算法设计:
在英文碎片的拼接中我们采用BP神经网络来对碎片进行拼接。因为BP神经网络
(图)可以通过监督式学习来对我们无法具体表示出特征的英文字符进行图像特征提
取,并通过提取的特征对碎片进行整体分类,识别输出。这种算法具有收敛快,权值更
新准则简单等优点。BP神经网路算法流程图为图(10)。
图(10)
算法求解:
Step1图像处理
对给定的图像进行灰度处理,生成灰度矩阵。
Step2图像分割
我们根据碎片中图像的灰度阈值、边缘检测进行分割。设定阈值T,通过函数
进行分割。其中对于物体的图像元素,对于背景的图像元素。
Step3图像特征提取
首先要明确提取的特征要满足唯一性、可分性、鲁棒性特点才能使图像提取的特征
更有使用价值。利用特征参数的灵敏度变化来进行特征提取出26个字母的灰度特征并
记录下来。训练效果图如图(11)。
图(11)训练效果图
Step4图像分类
依据所提取的特征,将前一部分的特征向量空间映射到类型空间,把相应原图归属
已知的一种模式。
Step5图像识别
针对每幅碎片的分割图上的信息与之前存储的26个英文字母的信息特征进行对比
识别。样本识别图如图(12)
图(12)样本识别图
Step6图像拼接
依据上述方法选取相似度最大的碎片进行拼接,先横向拼接再纵向拼接,进而拼出
整体图像。图像和代码见附录。
5.4问题三的模型建立与求解
1.算法设计
在问题三中出现了正反两面都有字的情况,这样的话,我们需要进行正反两次的拼
接才可以,问题变得复杂起来,但从题目所给的图片来看,如果知道一个图片的正面那
么一定会有它的反面的信息,所以本题并不是很复杂,我们只需要对问题二中的英文碎
片拼接的方法进行一下改进即可。流程图见图(12)
图(12)流程图
2.算法步骤:
Step1BP神经网络拼接
运行问题二中的英文碎片拼接的方法:
Step2灰度匹配修正
本题正反两面都是英文,文字特征相同,仅用问题二中的方法产生的误差太大。在
这里我们选择采用正面BP神经网络拼接,背面灰度匹配修正[7]的方法对模型进行优化。
对上述拼接好的完整图反面进行分析,首先利用灰度矩阵边缘特征筛选出没有达到阈值
的碎片匹配,对这些碎片再次进行基于最小二乘法的边缘相似度计算,依照相似度重新
进行拼接。
Step3人工干预
因为上述方法不论哪种总存在误差,进行结合匹配后仍然不能完全的消除误差,所
以此处加入人工干预,通过人脑思维的文字图像识别和理解能力,进一步减小误差,以
达到组成最佳匹配的目的。完整图和代码见附录。
六、模型的优缺点及改进
6.1模型的优点
模型主要采用了基于最小二乘法的灰度图像匹配方法,大大较少了模型的计算量。
针对复杂的碎片拼接时采用了人工干预和聚类分析的方法,是模型计算出来的结果更加
准确。针对中文和英文碎片分别采用了“横笔”、字母匹配的边缘匹配方法,使得模型
可以定向解决不同的碎片拼接问题。为解决计算机拼接的技术的限制,模型在重要的几
处加入了人工干预,使得模型的准确度进一步加强。
6.2模型的缺点
模型最初便假设碎片不用进行预处理,这样限制了模型的可用范围。为降低模型的
计算量,模型仅适用了一种方法判定两幅图的对应关系,导致最终拼出的图形差异稍大。
模型多处用到人工干预,虽然加大了模型的准确度,但同时也浪费了太多的人力和时间。
6.3模型的改进
该模型可以应用到大部分碎片的拼接问题上,但该模型考虑的面太窄,在对于比较
复杂的碎片拼接问题上扔无能为力。如果在运行模型前加入对碎片的预处理,比如对不
光滑的边缘进行边缘抛光,图像去噪等,模型运行效果会更好。
由于该模型较于简单,所以运行结果的精确度不是很高,对此,我们可以采用相关
函数、协方差函数、差绝对值与基于最小二乘法的灰度匹配相结合的方法进行模型建立,
这将极大的提高模型的精确度。
七、参考文献
[1]张兴初,汉字的各种笔画的使用频率的估计,心理学报,03期,1965年
[2]张静贤,汉字教程,北京,北京语言大学出版社,1970年
[3]汉字字序规范课题组,GB13000.1字符集汉字字序(笔画序)规范,语文建设,第05
期1999年
[4]张贤达.矩阵分析与应用.北京:清华大学出版社,2004:403-452
[5]董宁,工具技术,移动最小二乘法在NURBS曲线拟合中的应用,工具技术,第1
期,2011年
[6]赵辉,基于灰度共生矩阵的图像研究,自动化技术与应用,第3期,2004年
[7]罗钟铉,灰度图像匹配的快速算法,计算机辅助设计与图形学学报,第2期,2005
年
八、附录
附录1.问题一中文碎片的拼接程序:
运行结果为:
last=
6
first=
8
order=
Columns1through15
861459
131811
Columns16through19
71706
附录2.问题一英文文碎片的拼接程序:
clear
clc
fori=0:18
I=imread(['H:B附件2',sprintf('%03d',i),'.bmp']);
A{i+1}=I(:,72)';
B{i+1}=I(:,1)';
end
a=zeros(1,19)-1;
b=zeros(1,19)-1;
fori=0:18
ifB{i+1}==(zeros(1,1980)+255)
a(i+1)=i;
end
ifA{i+1}==(zeros(1,1980)+255)
b(i+1)=i;
end
end
fori=1:19
ifa(i)~=-1
first=a(i)
end
ifb(i)~=-1
last=b(i)
end
end
%a,b%得出第一个为3,最后一个为4
order=zeros(1,19)-1;
order(1)=3;
order(19)=4;
c=zeros(19,19)-1;
k=zeros(1,19)-1;
fori=0:18
ifi~=4
he=zeros(1,19)-1;
forj=0:18
ifj==i||j==3
he(j+1)=-1;
el
he(j+1)=sum((B{j+1}-A{i+1}).^2);
end
end
xiao=max(he);
forj=1:19
ifxiao>=he(j)&&he(j)~=-1
xiao=he(j);
g=j-1;
end
end
k(i+1)=g;
end
end
fori=2:18
order(i)=k(order(i-1)+1);
end
order
运行结果为:
first=
3
last=
4
order=
Columns1through15
36273
10812
Columns16through19
1417164
附录3问题二中文左右两列的选择程序:
clear
clc
j=0;
%取最左边一列图片
fori=0:208
R=imread(['H:guosai00guosaiB附件3',sprintf('%03d',i),'.bmp']);
I=im2bw(R);
A=I(:,1:12);%估计左边距占10个像素点
ifA==(zeros(180,12)+1)
j=j+1;
left(j)=i;
end
end
left%产生11个图片left=718994
125168
%取最右边一列图片
j=0;
fori=0:208
R=imread(['H:guosai00guosaiB附件3',sprintf('%03d',i),'.bmp']);
I=im2bw(R);
A=I(:,60:72);%估计左边距占10个像素点
ifA==(zeros(180,13)+1)
j=j+1;
right(j)=i;
end
end
right%产生11个图片right=183643596
176196
运行结果为:
left=
7
right=
6196
附录4
%已处理得为首个元素,末元素为
clear
clc
a1=[72];
fori=1:19
R=imread(['H:B附件3',sprintf('%03d',a1(i)),'.bmp']);
I=im2bw(R);
A{i}=I(:,72)';%取末列
B{i}=I(:,1)';%取首列
end
order=zeros(1,19)-1;
order(1)=71;
order(19)=60;
k1=zeros(1,18)-1;
fori=1:18
he=zeros(1,19)-1;
forj=2:19
ifj==i
he(j)=-1;
el
b=B{j};a=A{i};
num=180;var=0;
fork=1:180
ifa(k)==b(k)
var=var+1;
end
end
he(j)=var/num;%得到匹配度
end
end
g=-1;
yuzhi=0.92;%%加入阈值
shunxu=i
forj=1:19
ifhe(j)>=yuzhi
a1(j)%%放置最匹配的图像编号
end
end
end
运行结果为:
shunxu=
1
ans=
156
shunxu=
2
ans=
133
shunxu=
3
ans=
15
ans=
8
ans=
83
shunxu=
4
ans=
60
shunxu=
5
ans=
202
shunxu=
6
ans=
33
shunxu=
7
ans=
80
shunxu=
8
ans=
152
shunxu=
9
ans=
200
shunxu=
10
ans=
132
ans=
170
shunxu=
11
ans=
165
shunxu=
12
ans=
80
ans=
83
shunxu=
13
ans=
27
shunxu=
14
ans=
205
shunxu=
15
ans=
15
shunxu=
16
ans=
17
shunxu=
17
ans=
198
shunxu=
18
ans=
85
附录5
附录6:
附录7:
本文发布于:2022-11-23 04:01:38,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/3411.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |