APP下载

规则灰色图片拼接技术研究

2015-03-02张文龙

软件导刊 2015年1期

张文龙

摘要:图像拼接技术在司法物证复原、历史文献修复等领域应用广泛。探讨边缘相同的单面灰色图片拼接复原问题,建立Matlab数学模型,通过编程设计规则灰色图片拼接复原方案,运用计算机技术准确拼接复原图片原件。该模型一定程度上弥补了常规文档碎纸片计算机拼接方法不适用于边缘形状相似的碎纸片的不足。

关键词:拼接复原;灰度值;相关性分析;图像数字化

DOIDOI:10.11907/rjdk.143662

中图分类号:TP317.4

文献标识码:A 文章编号文章编号:16727800(2015)001013902

0 引言

图像拼接技术的核心是图像配准,可将其归结为计算机视觉和模式识别问题,它在司法物证复原、历史文献修复等重要领域发挥着重要作用[12]。传统方法中,拼接复原工作需由人工完成,准确率较高,但效率很低。特别是当碎片量大时,人工拼接很难在短时间内完成。随着计算机技术的发展,人们试图开发碎片自动拼接技术,以提高拼接复原效率。该技术拼接过程与人工拼接过程类似,即拼接时不但考虑碎片边缘是否匹配,还要判断碎片字迹断线和文字内容是否匹配。根据现有技术,实现计算机智能识字难度较大。本文探讨通过计算机获取图片像素信息,将其转化为矩阵,根据图像的像素矩阵值进行碎片拼接的技术,实验证明拼接效率比单纯利用边界特征的方法高很多。

1 相关技术

1.1 Matlab中cell批量调取图片数据

将纵切得到的图片进行拼接复原,首先利用Matlab中的cell函数批量调入图片。先建立一个cell类型的空矩阵,然后将图片调入空矩阵中。cell类型下的单元都是独立的,所以读取数据时不会出现干扰现象。

1.2 图像数据阈值分割

在Matlab中使用im2bw函数进行图像数据阈值变换,将灰度图像转换为二值灰度图像。对图像二值化处理需要设定阈值level,取值在[0,1]之间。已有研究表明,人为设定阈值并不一定有效。本文利用Matlab工具箱提供的graythresh函数,利用最大类间方差法找到合适图片的阈值level。这个阈值通常比人为设定的阈值能更好地将一张灰度图像转换为二值图像。调用格式为:

level=graythresh(I)(1)

经过计算得出level的值在0.537左右,将图像数据转换为只有0和1的矩阵。

T=255level(2)

得到合适的图像分割像素比较值T。利用Matlab工具箱函数im2bw,使用阈值变换法将灰度图像转换为二值图像,设图片灰度值f(x,y),根据阈值分割法,有:

f(x,y)=0,f(x,y)≤T1,f(x,y)>T(3)

数字0代表黑点(黑色),数字1代表白色。于是将所有图像数据都转化为只有0,1组成的矩阵。

1.3 图片匹配

图像配准和图像融合是图像拼接的关键。由于相邻图片间具有很大相关性,可运用两个图像间的相关性进行图片配准操作。首先找出组成复原图的第一张图片,然后对其它图片进行匹配。

1.4 数据0和1的转变

利用Matlab中DIP工具箱函数im2bw,使用阈值T变换法将灰度图像转换成二值图像。灰度是指黑白图像中点颜色的深度,范围一般从0到255,白色为255,黑色为0。一般意义上,灰度图像是指只有纯黑(0)、纯白(255)两种颜色的黑白图像。根据图形类型,图像数据在0~255之间。一个二值灰度图像的像素值只能为0或1。根据下式将图片转化为由0和1组成的矩阵。

f(x,y)=0,f(x,y)≤T1,f(x,y)>T(4)

其中,f(x,y)代表某个点的灰度值。

1.5 corr2相关函数

选择利用Matlab中corr2函数,计算出由两个图片数据组成的两个矩阵之间二维相关系数。k=corr2(c,d),c与d是由两个大小相同的二维图像组成的两个矩阵。k为计算得到的相关系数,k越接近于1,则表示两个矩阵的相似度越大;k越接近于0,则表示两矩阵的相似度越小[34]。

2 模型设计与实现

在被纵切而成的图片中,每个图片中间部位内容的结构没有被损坏,其数据对结果不会造成影响。因此每个图片只取出左边第一列数据和右边第一列数据,将每个图片的左边第一列数据组成矩阵A;将右边第一列数据组成矩阵B。为找出复原图片中的第一张图片,将两个矩阵导入excel表中进行计算,得到每个图片左边第一列中数字1所占的百分比。若某图片第一列中数字1的百分比最大,则该图片左边第一列大部分为白色区域,可判断出是首列或尾列。然后在剩下矩阵列进行首列和尾列数据相关性分析,对第一个图片尾部数据与其它图片左边第一列数据进行相关性检验。运用相关函数corr2进行两个矩阵的相似系数求解,可得到一组相关系数。将这组相关系数进行比较,找出最大相关系数,并根据此相关系数的位置,找出与图片尾部数据可以匹配的第i列对应的图片。运用for循环语句,将上述方法进行循环操作,得到复原图片。

以由同一张照片纵切而成的图片为例,自动拼接复原操作步骤如下(见图1)。

图1 图片自动拼接复原操作步骤

(1)批量读取图片数据,运用Matlab中cell函数批量调入图片数据。

(2)运用最大类间方差找到一个合适的阈值,根据阈值进行二值化处理,用阈值转化法将灰度图像转化为二值灰度图像,即只有0和1的数据图像[5]。

(3)进行图片匹配与拼接,找出复原图片中第一个图片的序号,利用相邻图片间的相关性,用Matlab中corr2函数进行相关性检验,将找到的第一张图片的右边第一列数据和其它图片左边第一列数据进行相关性检验,得到一组相关系数,找出相关系数最大值,其所对应的图片即为

与第一张图片最匹配的图片,进行for循环操作便得到复原拼接图片。

3 模型实验结果与分析

模型循环相似度比较需要找出第一个图片,否则会出现错误的序列,造成结果错误。 找出第一个图片后,运用此模型,即可进行大量的纵向切割文件复原工作。常规文档碎纸片计算机拼接方法一般利用碎片边缘的尖点、面积等几何特征,搜索与之匹配的相邻碎纸片并进行拼接。这种基于边界几何特征的拼接方法并不适用于边缘形状相似的碎片[6]。利用该模型可以弥补这一缺陷。该模型利用碎片文字所在行的几何特征信息,比如同行图片的文字行离上、下边界的距离近似相同,相邻图片间的相似度高等,其拼接效果无疑优于单纯利用边界几何特征的方法。该模型可以推广到很多领域,如被纵向切割的重要文件的修复处理、拼图游戏开发等。

4 结语

本文设计的模型适用于纵向切割、切割口处基本平滑的图片的修复。当图片较少时,利用模型拼接复原图片的准确度较高,图片可以直接复原出来,结果完全正确。如果图片较多,当与同一张图片相似度接近的图片超出两张时,需要人工辅助。人工干预次数的增加会给拼接复原工作增加一定的难度,使该模型的灵敏度降低。该模型只能处理规则二维灰色图片的拼接,对于有边缘轮廓曲线、彩色、三维空间以及中英文混合图片的拼接复原还需要进一步研究。