基于OpenCV的多重干扰点二维码图像检测研究

2018-09-10 07:57范泽华陈茂林
河南科技 2018年22期
关键词:二维码

范泽华 陈茂林

摘 要:在快捷支付的生活中,手机扫描二维码图像时会因囊括其他非用户锁定的二维码而导致识别失败,用户需要重新扫描二维码才能解决该问题,降低了二维码使用的便捷率。本文提出了一种改进的轮廓定位检测方法,先将图像进行降噪处理和图像增强处理,然后再获取关键探测图形的位置,最后通过旋转与ROI区域选定生成标准二维码图像。实验结果表明,本方法可提高二维码图像的检测率。

关键词:二维码;图像预处理;位置探测图形;轮廓定位检测

中图分类号:TP391.41 文献标识码:A 文章编号:1003-5168(2018)22-0021-02

Research on Image Detection of QR Code with Multiple Interference

Points Based on OpenCV Library

FAN Zehua CHEN Maolin

(Chongqing Jiaotong University,Chongqing 400074)

Abstract: In the life of fast payment, mobile phone scanning two-dimensional code image will result in recognition failure because it contains other two-dimensional code locked by non-users. Users need to re-scan two-dimensional code to solve this problem and reduce the convenience of using two-dimensional code. In this paper, an improved contour location detection method was proposed. First, the image was denoised and enhanced, then the position of the key detection image was obtained. Finally, the standard two-dimensional code image was generated by rotation and ROI region selection. Experimental results showed that this method could improve the detection rate of two-dimensional code images.

Keywords: QR Code;image preprocessing;position detection graphics;contour location detection

二维码是用某种特定的几何图形按一定规律在二维平面维度上采用黑白相间的图形来记录数据符号信息的,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理。在二维码密集度较高的情况下,二维码之间也会产生噪声。目前使用的轮廓定位法会因为非目标二维码的噪声干扰导致检测失败,从而导致二维码的应用效率下降。本文从图像预处理过程中的检测阶段入手,对轮廓定位法进行改进,从而提高图像预处理的精准度。

1 图像预处理

根据二维码的属性,需要对其中的图像进行降噪处理和图像增强处理。

1.1 灰度处理

对于彩色图像,将图像的RGB分量转化成灰度(过滤彩色干扰),其转化公式为:

[Gray=0.3×R+0.59×G+0.11×B] (1)

1.2 滤波处理

通过电子设备采集的图像通常会受到电磁干扰,为了提高图像识别的精度,需要对之前的灰度图进行去噪处理[1]。数学公式表示为:

[Yi=Medfi-v,…,fi-1,fi,fi+1,…,fi+v] (2)

其中,[i∈N],[v=m-1/2],[Yi]为序列[fi-v,…,fi-1,fi,fi+1,…,fi+v]的中值。

1.3 灰度图像直方图均衡化

考虑到光照问题,曝光过度或者曝光不足的图像需要采用灰度图像直方图均衡化来增强图像细节[2]。

灰度直方图均衡化算法实现步骤如下。

①统计原始图像各灰度级的像素数目[ni]([0≤i②图像中灰度为[i]的像素出现的概率是:[px(i)=p(x=i)=ni/n],其中[n]是當前图像中所有的像素数,[px(i)]是像素值为[i]的图像的直方图,归一化到[0,1];

③px的累积分布函数,是图像的累计归一化直方图:

[cdfxi=j=0ipx(j)] (3)

④直方图均衡化计算公式,cdfmin为累积分布函数最小值,M和N分别代表图像的长宽像素个数,而L则是灰度级数(如图像为8位深度,则灰度级别共有28=256个级数,这也是最常见的灰度级数),v为原始图像中为v的像素值:

[hv=roundcdfv-cdfminM*N-cdfmin*L-1] (4)

1.4 二值化

根据二维码的“0”“1”比特流的概念,这里需要对前面处理的图像进行二值化,进一步将灰度图像处理为非黑即白的黑白效果图。

灰度图像阈值处理公式为:

[fx,y=0 fx,y

2 位置探测圖形的重定位实现

2.1 位置探测图形的提取

二维码在区域上有严格的定义。其中,二维码图像有效区域中存在三个探测图形。探测图形中黑白相间图形的宽度之比为1∶1∶3∶1∶1。经过位置探测图形提取处理后,生成仅仅只包含探测图形的图像。

2.2 关键位置探测图形的重定位

确认好位置探测图形的坐标信息后,求解坐标之间的斜率。其中,左上角的探测图形与其他两个图形的夹角等于90° ± δ 。

通过斜率与角度的公式转换可推导出夹角模型:

[angle=arctanki×180π-arctankj×180π] (6)

当且仅当[angle=90°±δ]且探测图形之间的欧式距离为最小的情况下,满足关键位置探测图形筛选条件[3]。

2.3 旋转变换

在确认好关键位置探测图形后,需要对图形进行几何变换,处理成标准的二维码图像。本文主要采用旋转变化,图像的旋转变换通常是以输入图像的中心像素为原点,将图像上的所有像素都按一个相同的角度进行旋转,但这里选定左下和右上的探测图形的中点C作为旋转中心。根据旋转变换的矩阵公式与斜率角度转换公式可以得到旋转模型:

[xi,yi,1=xi,yi,1cosarctank0×180π sinarctank0×180π 0-sinarctank0×180π cosarctank0×180π 0 0 0 1](7)

其中,[k0]为中点C与图像左下对角点的斜率。

通过旋转处理与ROI区域选定后,处理出最终的标准二维码图像(如图2所示)。

3 结果分析

为了验证方法的可行性,采用手机采集二维码图像信息的方式进行处理。为了达到实验目的,从店铺的微信支付宝云支付收款码进行采集,共选取200张作为测试图像。其中,成功生成标准二维码图片的数量为187,检测成功率为93.5%。从实验结果看,本文的检测方法可行性较高。该方法降低了顾客使用手机扫描二维码的时间,提高了二维码的快捷效率。

4 结语

二维码区域的确定存在一定的误判性,本文通过对包含二维码的图像进行减噪与增强图像处理,从二维码的属性出发,提取关键位置探测图像。由此,快速锁定了用户感兴趣的区域,降低了用户的操作时间。但本文存在一定的局限性,只能应用于店铺堆放的二维码图像和环境较好的情况,而对位置探测图像数量较多的图像需要进一步研究。

参考文献:

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

[2]齐凤山,蒋廷耀.基于Harris的二维码图像角点检测方法改进[J].软件导刊,2016(5):199-201.

[3]灰度图像直方图均衡化公式及实现[EB/OL].(2018-01-28)[2018-06-01].https://blog.csdn.net/fengbingchun/article/details/79188021.

猜你喜欢
二维码
扫码时代:二维码会被用光吗
二维码背后的原理是什么?
二维码组“时光隧道”酷炫如时空虫洞
二维码
全球九成二维码个人用户在中国缺乏规范安全堪忧
让严肃的二维码呆萌起来
银联发布二维码支付标准
银联发布二维码支付标准
二维码,别想一扫了之
神奇的“二维码”