基于Harris的二维码图像角点检测方法改进

2016-05-14 22:04齐凤山蒋廷耀
软件导刊 2016年5期
关键词:二维码

齐凤山 蒋廷耀

摘要:监控摄像机拍摄得到的二维码图像会产生畸变,进行二维码识别时,如采用单纯的Harris角点检测算法检测二维码图像的4个顶点,存在运算量大、识别效率低的缺陷,不适合在线实时二维码检测场景。提出了一种改进的Harris角点检测方法,先将二维码图像灰度化,再基于Harris算法逐行扫描获取畸变二维码的4个顶点,以缩小对初始二维码图像识别的操作范围。实验结果表明,该方法可大大降低二维码图像识别的运算量。

关键词:角点检测;二维码;灰度化;二维码识别

DOIDOI:10.11907/rjdk.161007

中图分类号:TP317.4

文献标识码:A 文章编号:1672-7800(2016)005-0199-03

0 引言

二维码是采用一些特定的黑白相间的方块几何图形,按照一定规律分布在指定的平面区域上来记录数据信息。在代码编码原理上使用了计算机内部基础逻辑“0”、“1”比特流的概念,并使用与二进制相对应的方格图形来表示相应的数据信息。通过图像采集设备摄取图片后,运用图像处理技术进行识读,以实现数据信息的自动智能处理。

在实际应用中由于多种因素往往会导致二维码遭到不同程度的破坏,并且图像采集设备的性能及拍摄角度也存在一些差异,采集到的图像通常会有各种噪声,二维码也难免会出现倾斜、畸变、失真、光照不均及阴影等情况。文献[1]为了解决以上问题,通过一系列的图像预处理技术处理采集到的带有各种噪声的图像,以尽可能降低以上各种复杂情形对二维码识别读取带来的不利影响,提高二维码的识别效率、速度及稳定性。然而,在处理畸变二维码图像过程中仍然需要对整幅图像进行操作,如果图像像素较高,将会运算量很大。为降低对畸变二维码图像处理过程中的运算量,本文从图像处理过程中的角点检测环节入手,在Harris角点检测算法基础上对角点检测方法进行改进,从而大大降低了二维码识别的运算量。

1 Harris角点检测

Harris角点检测算法是由Moravec算法发展而来,Moravec算法的基本思想是在图像上以目标像素点为中心设计一个局部检测窗口[2],上下左右移动窗口,同时计算窗口内的像素变化。如果窗口中的图像是平滑的,窗口内的像素则变化不大;如果窗口中的图像是一条边,在沿这条边滑动时,像素变化不大,而在沿垂直于这条边的方向滑动窗口时,像素变化会很大;如果窗口中的图像是一个角点,窗口沿任何方向移动,像素变化都会很大。用数学语言表示如下:

图2、图3是x、y方向的灰度分布情况,在开始和结尾部分曲线较为平滑,而中间区域的曲线波动较大,因而可以断定,中间波动较大的区域为二维码区域,即是要进行角点检测的区域。针对实际情况对x、y取适当的值,确定一个角点检测区域。在本次实验中,x取值21(开始)、335(结尾);y取值168(开始)、419(结尾)。根据4个取值可以确定一个矩形区域,该区域即是对图像进一步处理的区域,如图4所示。

2.2 搜索畸变二维码图像四个顶点

本文的实验对象是由海康威视网络摄像机从屏幕上采集的图像,图像可能的畸变形状各异,但均为内角不超过180度的四边形。设畸变四边形的4个顶点分别为A、B、C、D,顶点坐标分别为(xa,ya)、(xb,yb)、(xc,yc)、(xd,yd)。按照4个顶点坐标的关系,畸变四边形可以分为以下3种类型(每种类型的二维码畸变形状有多种,在此只列出3种)。

类型一:ya≤yb

类型二:ya

类型三:ya≤yb

(6)计算角点j1与角点km所确定的直线与横坐标轴上的夹角θm,比较θm和θ值,设△θ=θm-θ。△θ在(min,max)误差范围内,认为θm=θ,min和max值可根据实际情况适当设置。当△θ≥min时,s和θ值不变,仍然作为与下一个检测角点的比较对象,同时将km作为备选角点保存,设s1=km;当△θ

(7)如果存在备选角点,则二维码畸变形状为类型一或类型三,并且备选角点即是所求的角点,如图8、图10检测到第3个角点(顶点),设为j3。过角点j2、j3作一条直线,与矩形相交于点M、N。以MG边上的点为起始点,以MN、GN为边界(检测范围不包含此边界上的点),按照从左向右、从上向下搜索检测。若未检测到角点存在,则二维码畸变类型为类型一,执行步骤(9),如图8所示;若检测到角点存在,则二维码畸变类型为类型三,以角点j2为参考点,建立直角坐标系。按照以上方式进行检测,最终可以检测到最后一个角点,设为j4,如图10所示。

(8)若无备选角点,则二维码畸变形状为类型二,如图9所示,执行步骤(9)。

(9)再以j1为参考点,F1H边上的点为起始点,从右向左、从上向下按照以上步骤及方式进行角点的搜索检测。将检测到满足条件的角点与已得到的角点进行对比,看是否属于同一角点,如果是同一角点则继续检测,如果不是同一角点,则统计满足条件的角点个数,当满足条件的角点个数等于4时,检测结束,如图8、图9检测到第4个角点,设为j4。

3 实验结果

本实验采用的图像像素大小为384*512,在畸变二维码处理角点检测环节,如果对整幅图像进行检测,运算量为384 512=196 608个像素;采用本文的角点检测方法,运算量最大的情况下为(335-21)(419-168)=78 814个像素,占比约40.08%,而实验中是56 346个像素,占比约28.66%,从而大大降低了运算量。

为了验证本文方法的可行性,采用一台海康威视的网络摄像机从电脑显示器上拍摄采集多幅二维码图像,图像尺寸为19 201 080像素。为了达到实验目的,从正面、侧面、其它方向等多个角度和方向拍摄采集图像,共选取300张作为测试图像进行角点检测。其中成功检测到畸变二维码4个角点的有283张,检测成功率为94.3%。

从实验结果看,本文的检测方法可行性较高。该方法降低了角点检测时图像处理的运算量,提高了角点检测环节的运算效率。

4 结语

Harris角点检测运算复杂,在检测较高像素图片时运算量非常大,不适合二维码实时识别场景。本文提出的方法是先缩小图像操作范围,再运用上文提出的角点检测方法,找到畸变二维码的4个顶点。此方法可大大降低运算量,并提高运算效率。然而,本文方法仍具有一定局限性,只能运用于环境较好的情况下,且拍摄的二维码图片无其它杂点。而对于有杂点的畸变二维码图片,还有待进一步研究。

参考文献:

[1]欧福超.基于图像处理的QR码图像预处理的研究[D].济南:山东大学,2014.

[2]龚平,刘相滨,周鹏.一种改进的Harris角点检测算法[J].计算机工程与应用,2010,46(11):173-175.

[3]张从鹏,魏学光.基于Harris角点的矩形检测[J].光学精密工程,2014,22(8):2259-2266.

[4]卢瑜,郝兴文,王永俊.Moravec和Harris角点检测方法比较研究[J].计算机技术与发展,2011,21(6):95-100.

[5]张小洪,李博,杨丹.一种新的Harris多尺度角点检测[J].电子与信息学报,2007,29(7):1735-1738.

[6]李贞培,李平,郭新宇.三种基于GDI_的图像灰度化实现方法[J].计算机技术与发展,2009,19(7):73-79.

(责任编辑:黄 健)

猜你喜欢
二维码
二维码通行券自助发行系统在新兴市场的应用
二维码迷宫
二维码
小康二维码
从条形码到二维码
从条形码到二维码
会赚钱的收款二维码
让严肃的二维码呆萌起来
二维码让政务公开更直接
为二维码识别的献礼之作——评测平治二维码门禁读卡器