一种基于Harris角点检测的表格文档直线交叉点提取优化算法
2018-10-17
(广东工业大学 广东 广州 510006)
角点被普遍认为是二维图像亮度变化剧烈或者图像边缘曲线上曲率极大值的点[1]。角点检测广泛应用于特征提取、图像拼接、形状分析、图像匹配(FPM特征点匹配)、相机标定等领域。目前,角点检测技术可以分为两类:一种是基于图像灰度的方法,如Susan算法[2],Harris算法[1]等;另一种基于轮廓的方法,如Kitchen算法[3]。第一类算法对噪声比较敏感,存在检测精度和准确率的缺点。第二类算法比较依赖边缘线,鲁棒性不高。
本文针对表格文档的交叉点特征提取,对Harris角点检测算法进行优化,将计算灰度变化的矩形窗口函数改为十字形窗口函数,减少了计算量,提高了交叉点的检测精度和准确率。通过实验对改进后算法进行验证。
一、Harris角点检测算法
Harris算法原理是计算图像窗口W沿任意方向移动后的计算灰度变化。设以像素点(x,y)为中心的小窗口在X和Y方向上移动分别u和v,则灰度变化量解析式为:
将Ex,y化为二次型:Ex,y=[u,v]M[u,v]T
定义角点响应函数R(x,y)=det(M)-k(trace(M))2
其中,det(M)为矩阵M的行列式,trace(M)为矩阵的迹,k为经验值,一般取0.04。当目标像素点的R值大于给定阈值时,则该店像素点为角点。
二、优化的Harris角点检测算法
为了提高Harris算法对表格交叉点的检测精度和效率,本文对计算像素点矩形邻域用到的窗口函数wx,y改进为十字形窗口函数wx,y。如图1所示,原始算法使用9*9的矩形窗口函数,改进后算法使用同等规格的十字形窗口函数。图中每个小格代表一个像素点,黑色格子表示目标像素点,白色格子代表邻域像素点。
图1
图2
三、实验结果及分析
为了验证本文改进算法的有效性,利用表格图片进行验证。本实验中,在PC(Intel(R)Core(TM)i5-4200M CPU @ 2.50GHz、4.0GB内存)机上用Visual Studio 2012进行实验。窗口分别取9*9矩形窗口和与之对应的十字形窗口。实验结果如下:
图3 矩形窗口
图4 十字形窗口
由实验结果统计可得下表1:
表1 实验结果对比
由表可知,改进后的Harris算法有更高的精度和更高的准确度。原始算法易受表格文字的干扰而出现很高的误检率,而改进后的算法鲁棒性更强。
四、结论
原始的Harris算法易受表格文字等干扰而存在误检率高的缺陷。通过将窗口函数修改为十字形窗口,更好地拟合表格直线交叉点的特征,提高了表格交点的检测精度和准确率,并且降低了文字等噪声的干扰,具有更好的鲁棒性。实验证明了本文方法的有效性和准确性。