会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 贴标 / 条形码 / 条形码图像识别方法

条形码图像识别方法

阅读:1110发布:2020-07-11

IPRDB可以提供条形码图像识别方法专利检索,专利查询,专利分析的服务。并且本发明公开了一种条形码图像识别方法,属于计算机的信息自动识别技术领域,包括以下步骤:S1、对Android手机摄像头采集的彩色图像进行灰度化,所述彩色图像为条形码图像;S2、对灰度化后的图像进行中值滤波处理;S3、对于中值滤波处理后的图像进行二值化处理;S4、对二值化处理后的图像进行条形码的定位;S5、对定位后的图像进行几何失真校正;S6、对校正后的图像进行解码,得到图像的码字。本发明提高了条码识别的精度,降低了复杂度。,下面是条形码图像识别方法专利的具体信息内容。

1.一种条形码图像识别方法,其特征在于,包括以下步骤:S1、对采集的彩色图像进行灰度化,所述彩色图像为条形码图像;

S2、对灰度化后的图像进行中值滤波处理;

S3、对于中值滤波处理后的图像进行二值化处理;

S4、对二值化处理后的图像进行条形码的定位;

S5、对定位后的图像进行几何失真校正以及像素值变换;

S6、对校正后的图像进行解码,得到图像的码字。

2.如权利要求1所述的方法,其特征在于,步骤S2中,进行中值滤波处理时,采用3×3的正方形窗口作为中值滤波模板。

3.如权利要求1所述的方法,其特征在于,步骤S3具体为:提取过渡区的像素,然后使用过渡区像素的灰度均值作为分割门限对图像进行二值化,所述过渡区是图像中介于目标与背景之间的部分像素构成的区域。

4.如权利要求3所述的方法,其特征在于,步骤S3具体包括:S301、计算所述过渡区的灰度最低值Llow、灰度最高值Lhigh及灰度平均值L;

S302、用所述灰度平均值L对图像进行二值化,得到二值化图像;

S303、在所述二值化图像中,寻找位置探测图形,如果未找到,则执行步骤S304;否则执行步骤S4;

S304、将灰度平均值L与灰度最低值Llow求平均值得到L1,再利用L1寻找位置探测图形,如未找到则执行步骤S305;否则执行步骤S4;

S305、将灰度平均值L与灰度最高值Lhigh求平均值得到L2,再利用L2寻找位置探测图形,如未找到则进行步骤S306;否则执行步骤S4;

S306、将L1分别与Llow、L求平均值得到L3和L4,将L2分别与L、Lhigh分别求平均值得到L5和L6;再用L3、L4、L5、L6分别寻找位置探测图形,如未找到则说明该图像无法识别,需要重新采集彩色图像;否则执行步骤S4。

5.如权利要求1所述的方法,其特征在于,所述条形码为QR码,且步骤S4具体为:从图像中寻找QR码中包含的3个位置探测图形,根据3个位置探测图形确定出来图像中QR码顶点的位置,然后分析该位置探测图形的3个顶点的坐标,然后再利用过这三个顶点的Hough变换来确定第四个顶点,从而计算出QR码的边界。

6.如权利要求5所述的方法,其特征在于,所述Hough变换的具体步骤如下:

1)、在图像中设定斜率区间,将设定的斜率区间等分为10个子区间,即每个子区间的宽度为设定斜率区间宽度的1/10;

2)、为每个子区间设置一个累加器nj,1≤j≤10;

3)、初始化每个累加器的值为0,即nj=0;

4)、逐点扫描图像,扫描到目标像素时,计算目标像素与已知点p0之间的斜率m,m值属于哪个子区间就将哪个子区间累加器的值加1;

5)、当扫描完全部斜率区间之后,将累加器的值为最大的子区间及其相邻的两个子区间组成的区间作为下一次要设定的斜率区间,重复上述步骤1至4,直到斜率区间的宽度小于预设的斜率检测精度为止。

7.如权利要求1所述的方法,其特征在于,步骤S5中,根据不失真的QR码为正方形的特性利用控制点变换法进行几何失真校正,所述控制点是表示QR码的四边形的顶点;并根据双线性插值法进行像素值变换。

8.如权利要求1~7任一项所述的方法,其特征在于,所采集的彩色图像是利用Android手机摄像头所采集的图像。

说明书全文

条形码图像识别方法

技术领域

[0001] 本发明涉及计算机的信息自动识别技术,尤其涉及一种条形码图像识别方法。

背景技术

[0002] 常见电子条形码是广泛采用的一维条形码技术,国际常见的编码方式有EAN-8、EAN-13、UPC-A及UPC-E等各种标准,应用已经相当广泛;然而,其内含的信息量相当少,其只限于使用数字,在这信息爆炸的时代已不再使用,由于信息技术及硬件发展的进步,使我们得以扩展电子条形码的容量,因而产生了二维条形码的标准及技术。常见的二维条形码的国际标准有PDF417、Data Matrix、MaxiCode及QR Code等各种标准,除了数字及符号外,有些编码方式还可以加入各国语言文字集,其中以QR Code最为大家所广泛使用,加上目前硬件设备发展突飞猛进,已经具有快速有效的辨识方案,该二维条形码必将成为重要的电子条形码技术。
[0003] 二维条形码具有可以表示汉字信息和图像信息、携带信息量大、可以精确描述、防止伪造、可以不依赖计算机数据库等优点,从而提高了条行码技术的应用水平,拓展了条形码技术的应用领域。
[0004] 国标GB/T 18284-2000《快速响应矩阵码QR Code》是最具有代表性的二维条形码之一,该国标中技术规定“每个QR码符号由正方形模块组成的一个正方形阵列构成”。QR码符号共有40个规格,分别为版本1、版本2......版本40。版本1的规格为21模块×21模块,版本2的规格为25模块×25模块,依次类推,每一版本比前一版本每边增加四个模块,直到版本40,其规格为177模块×177模块。
[0005] 二维条形码与手机结合,为二维条形码带来更广泛的应用。2006年4月,北京元泰世纪公司在国内创新性地推出手机扫描二维条形码(移动条形码)的应用技术,但是识别率较低。2006年8月,中国移动和银河传媒联手推出了二维条形码业务,随即在中国移动的手机用户中迅速蔓延开来。手机用户下载安装条形码识别软件后,只需启动软件并通过手机摄像头拍下自己感兴趣二维条形码就可获取所需要的信息。中国移动通讯公司对手机条形码业务的推广主要集中在个人用户版本和商业用户版本两个方面。其中,针对个人的应用主要是名片、短信、邮件、文本显示等四个方面。同时在广州的一些机场已经出现了使用二维条形码作为电子票务方面的应用。
[0006] 由于条码产业起步较晚,我国手机二维条形码的使用范围并不广泛。同时,国内手机与日本、韩国相比摄像头普遍具有像素低、无微距拍摄功能的特点,使得采集的初始二维条形码图像质量不高,无法直接进行解码。为了能从二维条形码中顺利地解码和读取其中的信息,目前主要在手机端安装应用软件,从摄像头获取初始图像,通过图像处理方法再得获取标准条形码图像来完成解码。中国的手机二维条形码的应用还不是很理想。首先,中国的二维条形码还没有形成一个完整的商业应用体系,没有一个完整的产业链;其次,手机二维条形码作为移动互联网的一个入口,目前其软件适配的机型还不多,网络的资源也较少;再者,使用手机上网的流量费用比较高,很多民众还不能接受手机上网以及移动互联网的模式;最后,中国的手机市场纷繁复杂,市面上流通的手机品种过多,客观上也造成了二维条形码流行的难度。
[0007] 公开号为CN101281588的中国发明专利申请提供了一种移动二维条形码系统,是针对手机二维条形码业务的实际需要而专门开发的二维条形码系统。它也提供了二维条形码系统实现信息编解码的方法。但在该二维条码系统中,没有使用纠错码,仅采用奇偶校验的方法来实现信息的校验,识别率较低,同时,仅使用编解码,不能满足手机及移动互联网的各种应用需求,同时它也不能适应现有智能手机系统(如Android系统)的市场要求,更不能满足目前智能手机二维条形码业务以移动互联网为重心的技术要求,不利于国内手机二维条形码业务向智能手机系统的方向的发展。Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。

发明内容

[0008] (一)要解决的技术问题
[0009] 本发明要解决的技术问题是:如何提高条码识别的精度,并降低复杂度。
[0010] (二)技术方案
[0011] 为解决上述技术问题,本发明提供了一种条形码图像识别方法,包括以下步骤:
[0012] S1、对采集的彩色图像进行灰度化,所述彩色图像为条形码图像;
[0013] S2、对灰度化后的图像进行中值滤波处理;
[0014] S3、对于中值滤波处理后的图像进行二值化处理;
[0015] S4、对二值化处理后的图像进行条形码的定位;
[0016] S5、对定位后的图像进行几何失真校正;
[0017] S6、对校正后的图像进行解码,得到图像的码字。
[0018] 步骤S2中,进行中值滤波处理时,采用3×3的正方形窗口作为中值滤波模板。
[0019] 步骤S3具体为:提取过渡区的像素,然后使用过渡区像素的灰度均值作为分割门限对图像进行二值化,所述过渡区是图像中介于目标与背景之间的部分像素构成的区域。
[0020] 步骤S3具体包括:
[0021] S301、计算所述过渡区的灰度最低值Llow、灰度最高值Lhigh及灰度平均值L;
[0022] S302、用所述灰度平均值L对图像进行二值化,得到二值化图像;
[0023] S303、在所述二值化图像中,寻找位置探测图形,如果未找到,则执行步骤S304;否则执行步骤S4;
[0024] S304、将灰度平均值L与灰度最低值Llow求平均值得到L1,再利用L1寻找位置探测图形,如未找到则执行步骤S305;否则执行步骤S4;
[0025] S305、将灰度平均值L与灰度最高值Lhigh求平均值得到L2,再利用L2寻找位置探测图形,如未找到则进行步骤S306;否则执行步骤S4;
[0026] S306、将L1分别与Llow、L求平均值得到L3和L4,将L2分别与L、Lhigh分别求平均值得到L5和L6;再用L3、L4、L5、L6分别寻找位置探测图形,如未找到则说明该图像无法识别,需要重新采集彩色图像;否则执行步骤S4。
[0027] 所述条形码为QR码,且步骤S4具体为:从图像中寻找QR码中包含的3个位置探测图形,根据3个位置探测图形确定出来图像中QR码顶点的位置,然后分析该位置探测图形的3个顶点的坐标,然后再利用过这三个顶点的Hough变换来确定第四个顶点,从而计算出QR码的边界。
[0028] 所述Hough变换的具体步骤如下:
[0029] 1)、设定斜率区间,将设定的斜率区间等分为10个子区间,即每个子区间的宽度为设定斜率区间宽度的1/10;
[0030] 2)、为每个子区间设置一个累加器nj,1≤j≤10;
[0031] 3)、初始化每个累加器的值为0,即nj=0;
[0032] 4)、逐点扫描图像,扫描到目标像素时,计算目标像素与已知点p0之间的斜率m,m值属于哪个子区间就将哪个子区间累加器的值加1;
[0033] 5)、当扫描完全部斜率区间之后,将累加器的值为最大的子区间及其相邻的两个子区间组成的区间作为下一次要设定的斜率区间,重复上述步骤1至4,直到斜率区间的宽度小于预设的斜率检测精度为止。
[0034] 根据不失真的QR码为正方形的特性利用控制点变换法进行几何失真校正,所述控制点是表示QR码的四边形的顶点。
[0035] 优选地,所采集的彩色图像是利用Android手机摄像头所采集的图像。
[0036] (三)有益效果
[0037] 本发明提供的应用于Android手机系统的条形码图像识别方法,具有以下的优点:
[0038] 1)不需要辅助光源,对手机摄像头在自然光照下的条形码可自动识读。
[0039] 2)基于结果的图像过渡区提取最佳阈值法使QR码识别算法的每一步都与所确定的阈值相关,并根据算法结果动态改变阈值,从而提高了识别算法的适应性和鲁棒性。图像过渡区提取最佳阈值法还兼顾了图像在不同光照下的各种可能和实时性要求,此算法可以很好地实现图像的二值化分割,模型简单,阈值选择容易,处理速度快,空间占用少。而基于结果的特性更保证了采用最佳阈值来进行二值化,大大提高了条码识别的精度。
[0040] 3)图像定位算法中针对QR码位置探测图形的定位方式能准确提取条码图像的3个顶点,再通过优化的过顶点Hough变换计算出条码所有顶点坐标从而达到条码定位。此算法相对于传统的Hough变换计算量少,空间复杂度低,更有利于手机系统有限的内存的识读。

附图说明

[0041] 图1是本发明中条形码图像识别方法的流程图;
[0042] 图2是本发明中QR码结构图;
[0043] 图3是本发明中采用不同模板进行中值滤波后的效果示意图;
[0044] 图4是本发明中图像过渡区示意图;
[0045] 图5是本发明中位置探测图形(Finder Patterns)结构图;
[0046] 图6是本发明中QR码的位置探测图形扫描线示意图;
[0047] 图7是本发明中几何失真校正的原理图;
[0048] 图8是本发明中双线性插值原理图。

具体实施方式

[0049] 下面结合附图和实施例,对本发明的具体实施方式作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0050] 如图1所示,本发明的方法包括以下步骤:
[0051] S1、首先对手机摄像头采集的彩色图像进行灰度化。
[0052] 大多的移动设备采集到的是彩色图像,彩色图像存储占用比灰度图像更多的空间,处理时间相对灰度图像也要长得多。同时条形码打印又是按照黑白方式打印的,所以在识读条码的过程中,实际拍摄的条形码图像中的彩色信息分量对于条码的识别没有作用,因此需要把彩色图像转化为灰度图像,以便减少后续操作的运算时间,还可以节省识读设备内存的开支。
[0053] 灰度图像就是只有强度信息而没有颜色信息的图像,存储灰度图像只需要一个数据矩阵,矩阵每个元素表示对应位置像素的灰度值。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量从1-255中取值,这样一个像素点可以有1600多万(255x255x255)的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其中一个像素点的变化范围为0~255,灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的亮度等级的分布和特征。
[0054] QR码图像是由0或1的黑白模块组成,而通过摄像头采集到的是彩色图像。彩色图像包含着大量的信息,不但在存储上开销很大,而且处理上也会降低系统的执行速度。由于图像的每个像素都具有三个不同的颜色分量,存在许多与识别无关的信息,不便于进一步的识别工作,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。由彩色图像转换为灰度图像的过程叫做灰度化处理。灰度图像是只有强度信息而没有颜色信息的图像。由于人眼对绿色的敏感度最高,对红色的敏感度次之,对蓝色的敏感度最低,经过大量的实践经验,人们总结出绿色的权值为0.59,红色的权值为0.30,蓝色的权值为0.11时,得到的灰度图效果最好、最真实。即,设像素彩色各分量值为(R,G,B),那么标准的灰度值Y的计算公式为:
[0055] Y=0.59G+0.30R+0.11B (1)
[0056] S2、通过手机摄像头采集到的图像一般都会因周围环境的干扰而含有噪声,因此对其进行中值滤波处理。
[0057] 手机获取的条形码图像的噪声主要来自于两个方面。首先来自于条形码表面的污损,这方面的噪声用任何的去噪算法都不可能完全处理掉,只能凭借条形码本身的纠错算法进行纠错。噪声的另外一个来源是来自光学采集系统,这部分的噪声主要是满足泊松分布的椒盐噪声,采用适当大小的矩形窗口的中值滤波非常适于条形码图像的去噪。
[0058] 中值滤波是抑制噪声的非线性处理方法。对于给定的n个数,将它们按大小有序排列。当n为奇数时,处于中间位置的数值称为这n个数的中值;当n为偶数时,处于中间位置的两个数值的平均值称为这n个数的中值。中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点的值的中值代替。中值滤波去噪声的效果依赖于两个相关的但完全分开的要素:邻域空间范围即窗口大小和窗口形状。因此在使用中值滤波处理条形码图像时,首先应该确定使用的窗口形状和窗口大小。因为QR码图像的基本模块都是正方形,因此采用正方形窗口效果较好。在此,采用3*3模板滤波,从而去除由于图像旋转所引入的点状椒盐噪声。图2是分别采用3×3、5×5、7×7模板进行处理后的结果。很明显,7×7模板滤波后的结果图像特别模糊,5×5比3×3的模糊。因此根据试验,确定中值滤波模板为3×3的正方形窗口。
[0059] S3、采用基于结果的图像过渡区提取最佳阈值法对图像进行二值化处理,得到二值图像;
[0060] 在用手机摄像头采集图像时,由于没有稳定光源,光照不均的现象经常发生,这时采用固定单一的阈值无法进行正确图像分割。另外一方面,条形码应用要求实时性强,考虑到后续识别工作是否能够顺利完成以做出决定。因此,选取灰度过渡区提取阈值区间,并基于后续结果来选取最佳阈值的路线来作为图像二值化的方法。
[0061] 对于QR码识别,图像二值化的目的是为了去除背景,尽可能好地保留条形码符号并且减少符号中的噪声杂质,为在后续的条形码识别中能够正确识别位置探测图形和正确读取条形码码字提供基础保障,因此,除了根据图像过渡区来选取阈值以外,QR码图像的二值化要考虑与后续工作相结合,而不是单一的通过一个阈值对图像二值化后而结束,即二值化是否完成要根据后续工作是否能够顺利完成而作出决定,这就是本发明针对移动终端QR码识别提出的基于结果的阈值法。
[0062] 过渡区是图像中介于目标与背景之间的部分像素构成的区域,这部分像素的空间位置位于目标与背景之间,灰度分布也位于目标灰度均值与背景灰度均值之间。图3是图像过渡区示意图。原图像中灰度值介于Llow与Lhigh之间的像素就构成了过渡区。过渡区提取的图像分割方法的基本思想是通过提取过渡区像素,然后使用过渡区像素的灰度均值作为分割门限对图像进行二值化。直方图方法具有一定的抗噪能力,但其缺点在于缺乏定位精度,在阈值精确定位方面存在很大不足,尤其对于宽谷直方图图像更是如此。边缘检测方法可以很好的定位区域边界,但对噪声太敏感。而本发明过渡区提取阈值分割方法把边缘检测与直方图技术很好的结合起来,使用边缘检测方法尤其是具有抗噪性的方法定位过渡区像素,然后使用过渡区像素的直方图峰值对应的灰度值(或过渡区像素的灰度均值)得到具有较高精度的分割阈值。
[0063] 基于结果的自适应阈值法,包括如下步骤:
[0064] 1)、计算由上述图像过渡区分析得到的过渡区的灰度最低值Llow、灰度最高值Lhigh及灰度平均值L;
[0065] 2)、先用上述图像过渡区分析得到的灰度平均值L对图像进行二值化,得到二值化图像;
[0066] 3)、在二值化图像中,寻找位置探测图形,如果探测失败,说明在当前的手机拍摄光照条件下该阈值(即灰度平均值)非最佳阈值,那么就需要对步骤2中的阈值重新选取,进行步骤4;如果探测成功,则到步骤S4;
[0067] 4)、将灰度平均值L与灰度最低值Llow求平均值得到L1,再进行探测,如探测失败则进行步骤5;如探测成功,则到步骤S4;
[0068] 5)、将灰度平均值L与灰度最高值Lhigh求平均值得到L2,再进行探测,如探测失败则进行步骤6;如探测成功,则到步骤S4;
[0069] 6)、让L1对Llow、L分别求平均值得到L3和L4,让L2对L、Lhigh分别求平均值得到L5和L6。再用L3、L4、L5、L6分别进行探测,如探测失败则说明该图像无法识别,需要重新采集;如探测成功,则到步骤S4。
[0070] S4、根据位置探测图形的特殊性质(深色∶浅色∶深色∶浅色∶深色=1∶1∶3∶1∶1)确定码图位置及四个顶点,并将其提取出来,实现条形码的定位;
[0071] 将QR码图像进行二值化处理后,就要对QR码进行定位,以便得到条码符号的覆盖范围。
[0072] QR码中包含三个大小和形状相同的位置探测图形(Finder Patterns)A、B、C。每个探测图形(图4)由3个重叠的同心正方形组成,模块宽度比例为:深色∶浅色∶深色∶浅色∶深色=1∶1∶3∶1∶1,它们对于条码图像的大小和旋转具有不变性的特点,同时在符号图像中出现类似图形的可能性极小,因此可以通过查找满足近似比例的区域来迅速确定探测图形的位置。本发明充分利用了QR码的位置探测图形,快速准确的定位并提取QR码符号覆盖范围,因此在具体实现上,采用的是针对QR这个特定码的定位方式。根据QR码的三个位置探测图形的特性可以精确的定位条码的其中三个顶点。直接从图像中寻找QR条码特有的3个位置探测图形,根据3个位置探测图像就可以确定出来图像中条形码顶点的实际位置,然后分析该位置探测图形的3个顶点的坐标,然后再通过过这三个点的Hough变换来确定第四个顶点进而计算出条形码的边界。
[0073] 寻找QR码中包含的位置探测图形的具体步骤如下:
[0074] 1’)、先水平扫描QR码图像,当探测到满足比例条件的区域时,保存图像中一行像素与位置探测图形的外边缘相遇的第一个点和最后一点E和F的坐标值,如图5所示。对该图像中的相邻像素行重复探测,直到附近区域中所有穿过位置探测图形的X轴方向直线被全部识别。当存在一组符合位置探测图形比例特征的像素行(行数设为NX),并保证所有像素行相邻的前提下,求取该组像素行的平均像素宽度WEF,初步估计该区域的中心坐标(Cx,Cy)。当行数NX与平均像素宽度WEF满足NX≥WEF/7(在标准图像中NX=(3/7)×WEF,此处留有余量以保证算法的可靠性),则执行步骤2’;否则,继续执行步骤1’,寻找其它满足条件的区域。
[0075] 2’)、以(Cx,Cy)为中心,X轴和Y轴方向为2WEF(在标准图像中为WEF)像素的正方形区域内,重复1’)的方法在图像的Y轴方向上寻找满足1∶1∶3∶1∶1比例特征的线段。保存满足条码的像素列于位置探测图形相遇的第一个点和最后一个点G和H的坐标值,直到预设区域中所有穿过位置探测图形的Y轴方向直线被全部识别。当存在一组符合位置探测图形比例特征的像素列(行数设为NY),并保证所有像素列相邻的前提下,求取像素列的平均像素高度HGH。当NY≥HGH/7且NX≈NY,基本确定该区域为位置探测图形,执行步骤3’;否则,执行步骤1’。
[0076] 3’)、取所有满足条件的像素行和像素列的中点作为该区域的中心坐标(Cx,Cy),并将其保存,同时保存WEF和HGH。当所有像素都被扫描了,执行步骤4’;否则,继续执行步骤1’。
[0077] 4’)、由于图像中边缘模糊性的影响,满足要求的图形往往多于3个,根据位置探测图形A、B、C之间的距离关系(A、B、C构成等腰直角三角形),可以最终确定位置探测图形的位置。
[0078] 经过以上步骤之后,能够获得三个位置探测图形的中心点坐标(xA,yA)、(xB,yB)、(xC,yC),及各自的像素宽WA、WB、WC,和像素高HA、HB、HC。由于所获取的QR码符号有可能是偏置或倒置的,所以要重新确定左上角、右上角和左下角位置探测图形的顺序。其中确定左上角位置探测在图像所处的方位至关重要。当确定了左上角位置探测图形在图像中的方位后,利用其与其它两个位置探测图形之间的坐标关系,可初步确定条码符号在水平及竖直方向上的倾斜角度。此时再以各个位置探测图形的中心作为参考点,向其外方向偏移该位置探测图像像素宽W和像素高H的1/2,即可获得条码符号的边界及四个顶点坐标。
[0079] 利用Hough变换,从左向右方向扫描图像得到条形码的左边界E(x1,x2,...,xn),然后用标准Hough变换求出条形码左边界的直线方程ρ=xcosθ+ysinθ,同左边界算法一样,可以得到条码的右边界、上边界、下边界。利用传统的Hough变换确定条码符号的边界,然后通过倾斜角度将符号旋转水平,再进行后续识别,这无疑丢掉了QR码的重要特征——超高速识读和360度识别特性。Hough变换对每一个点进行运算,计算量非常大,对于移动设备的CPU性能要求很高,会增加大量的时间和空间上的开销。因此,在移动设备应用中,考虑到实际的应用价值,因此本发明在具体实现上,采用的是针对QR这个特定条形码的定位方式,算法采用了优化的过顶点Hough变换。
[0080] 本发明充分利用了QR码的位置探测图形,快速准确地定位并提取QR码符号覆盖范围,因此在具体实现上,采用的是针对QR这个特定条形码的定位方式。根据QR码的三个位置探测图形的特性可以精确的定位条码的其中三个顶点。直接从图像中寻找QR码特有的3个位置探测图形,根据3个位置探测图像就可以确定出来图像中条形码顶点的实际位置。但是QR码的3个位置探测图形不一定完整,可能有一个甚至两个出现缺损,这样就要结合已识别出的位置探测图形、校正图形以及直方图,实现对图像的智能分析,判断出缺损的位置探测图像的位置,进而确定整个图像中QR码的位置,然后分析该位置探测图形的三个顶点的坐标,再通过对这三个点进行优化的过顶点Hough变换方法快速确定条码的边界。
[0081] 过顶点的Hough变换是在Hough变换基本原理的基础上,将逐点向整个参数空间的投票转化为过顶点的参数空间投票的快速直线检测方法。其基本思想是:首先找到属于直线上的顶点,将这个顶点p0的坐标定义为(x0,y0),将通过p0的直线斜率定义为m,则坐标和斜率的关系可用下式表示:
[0082] (y-y0)=m(x-x0) (2)
[0083] 定义区域内目标像素pi的坐标为(xi,yi),(0≤i<n,n为区域内目标像素总数),则pi点与p0点之间连线的斜率mi可用下式表示:
[0084] mi=(yi-y0)/(xi-x0) (3)
[0085] 将斜率值映射到一组累加器上,每求得一个斜率,将使其对应的累加器的值加1,因为同一条直线上的点求得的斜率一致,所以当目标区域中有直线成分时,其对应的累加器出现局部最大值,将该值所对应的斜率作为所求直线的斜率。
[0086] 当xi=x0时,mi为无穷大,这时公式(2)不成立。为了避免这一现象,当xi=x0时,令mi=2,当mi>1或mi<-1时,采用下式(3)的计算值替代mi,这样无限域的mi被限定在了(-1,3)的有限范围内。在实际操作时设定斜率区间为[-2,4]。
[0087] mi′=1/mi+2 (4)
[0088] 过顶点的Hough变换的具体步骤如下:
[0089] 1”)、将设定的斜率区间等分为10个子区间,即每个子区间的宽度为设定斜率区间宽度的1/10;
[0090] 2”)、为每个子区间设置一个累加器nj(1≤j≤10);
[0091] 3”)、初始化每个累加器的值为0,即nj=0;
[0092] 4”)、从上到下从左到右逐点扫描图像,遇到目标像素时,由式(3)及式(4)计算其与已知点p0之间的斜率m,m值属于哪个子区间就将哪个子区间累加器的值加1;
[0093] 5”)、当扫描完全部斜率区间之后,将累加器的值为最大的子区间及其相邻的两个子区间(共3个子区间)作为下一次投标的斜率区间,重复上述1”至4”步,直到投标斜率区间的宽度小于设定斜率检测精度为止。
[0094] S5、根据不失真的QR二维条形码为正方形的特性利用控制点变换法进行几何失真校正。
[0095] 利用图像中若干个能表示特征的控制点实现空间的变换,以达到几何校正的目的。考虑到无失真的条码是一个正方形,而失真后的条码通常会变成一般的四边形,这样,可利用4个顶点的正方形特征,如图6所示,将失真图像中的4个顶点A′,B′,C′和D′(控制点)还原成正方形A,B,C和D,同时,考虑图像变形不太大时,使用下述变换:
[0096] s(x,y)=xk1+yk2+xyk3+k4 (5)
[0097] t(x,y)=xk5+yk6+xyk7+k8 (6)
[0098] 上面两式中有8个未知数,当确定了原图像上4个点A′~D′和坐标变换后的4个点A~D坐标之后,就可以计算出8个参数k1、k2、...、k8。从而实现由一般四边形到正方形的校正变换。在对条码图像进行几何变换后,图像中每个像素的位置都要发生变化。数字图像的坐标值是整数,经过变换运算之后的坐标不一定是整数,因此要对变换后的像素值进行整数估计,所以还需要进行灰度插值的运算,才可获得一幅标准的二维条码图像。这里采用双线性插值法来进行灰度插值(如图7所示),即假定变换后图像中的某点在原图像中的坐标为(x′i,y′i),而其4个相邻像素分别为(x′i0,y′i0)、(x′i0,y′i1)、(x′i1,y′i0)、(x′i1,y′i1),灰度值分别为f00、f01、f10、f11,则该点的灰度值可表示为:fxy=(f10-f00)×(x′i-x′i0)+(f01-f00)×(y′i-y′i0)+(f11+f00-f01-f10)×(y′i-y′i0)+f00 (7)[0099] S6、为得到条形码图像的码字,需要得到行与列交叉处的条形码模块,参照国标(GB/T 18284-2000)给出的参考解码算法进行解码,具体步骤如下(下面的步骤为现有的国家标准解码技术):
[0100] (1)通过之前步骤可知各个顶点及位置探测图形中心点位置坐标,再通过这些数据可计算出条码模块尺寸及符号版本,然后对与左上区位置探测图形相邻的格式信息译码,得到纠错等级和用于掩模的掩模图形的符号。如果检测出错误超过格式信息的纠错容量,那么,采用同样的方法对与右上部和左下部位置探测图形相邻的格式信息进行译码。
[0101] (2)用掩模图形的符号对编码区进行异或(XOR)处理,解除掩模并恢复表示数据的纠错码字的符号字符。
[0102] (3)根据QR码标准中的排列规则确定符号码字。
[0103] (4)根据符号版本和纠错等级要求,采用QR码标准中规定的交替处理的逆过程,重新将码字序列按块排列。
[0104] (5)对每一块采用对应的Reed-Solomon纠错算法纠正替代错误与拒读错误,直到符号版本和纠错等级所规定的最大纠错容量。
[0105] (6)通过重新组配数据块序列,恢复原始信息的位流。
[0106] (7)将数据位流分成若干段,每一段有模式指示符开始,段的长度由在模式指示符后的字符计数指示符确定。
[0107] (8)根据采用的模式规则,对每一段进行译码,得到条码所包含的信息。
[0108] 为了用户更方便操作,本发明根据解码出来的信息还提供了一套应用于移动设备的二维条码信息功能动作示例:
[0109] 1、当解码出来字符开头以http://或https:/出现就自动开启系统内置浏览器功能直接上网;
[0110] 2、当字符开头以TEL:开头则根据后面的数字开始快速拨号;
[0111] 3、当字符开头以@出现则开启邮箱服务;
[0112] 4、当字符不符合以上三种情况则直接显示解码后的文本信息。
[0113] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用