CN112560538A - 一种根据图像冗余信息快速定位受损qr码的方法 - Google Patents
一种根据图像冗余信息快速定位受损qr码的方法 Download PDFInfo
- Publication number
- CN112560538A CN112560538A CN202110213441.XA CN202110213441A CN112560538A CN 112560538 A CN112560538 A CN 112560538A CN 202110213441 A CN202110213441 A CN 202110213441A CN 112560538 A CN112560538 A CN 112560538A
- Authority
- CN
- China
- Prior art keywords
- edge
- code
- pixel
- point
- line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000004044 response Effects 0.000 title description 3
- 230000009466 transformation Effects 0.000 claims abstract description 37
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims abstract description 29
- 238000001914 filtration Methods 0.000 claims abstract description 22
- 238000003708 edge detection Methods 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 13
- 238000012937 correction Methods 0.000 claims abstract description 8
- 238000005070 sampling Methods 0.000 claims description 56
- 238000009826 distribution Methods 0.000 claims description 26
- 150000001875 compounds Chemical class 0.000 claims description 21
- 239000011159 matrix material Substances 0.000 claims description 10
- 230000003044 adaptive effect Effects 0.000 claims description 9
- 230000004807 localization Effects 0.000 claims description 4
- 238000012935 Averaging Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 9
- 239000002699 waste material Substances 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 238000010191 image analysis Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000005452 bending Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000007769 metal material Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1443—Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1452—Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/02—Affine transformations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
- G06T2207/10008—Still image; Photographic image from scanner, fax or copier
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种根据图像冗余信息快速定位受损QR码的方法,步骤包括:对包含有QR码的图片进行灰度处理;对灰度图片进行清晰度评估;对灰度图片进行滤波及边缘检测;根据条纹的宽度比例确定QR码的三个定位图案;结合定位图案的大小对QR码区域进行自适应二值化;通过仿射变换寻找QR码的四条边缘,最后使用单应性变换进行定位校正。该快速定位受损QR码的方法充分利用图像中的冗余信息,尽可能减少图像遍历次数,提高算法速度;采用自适应阈值边缘检测和自适应阈值二值化,提高边缘检测和二值化的效果;对不清晰的图像实行过滤,能够避免计算资源过渡浪费。
Description
技术领域
本发明涉及一种快速定位受损QR码的方法,尤其是一种根据图像冗余信息快速定位受损QR码的方法。
背景技术
QR码(Quick Response Code,快速响应矩阵码)是一种二维码,其具有信息存储密度高,容错能力强等优点,通过其明显的定位图案可实现快速定位,因此得到了广泛的应用。
随着信息化程度的发展,各行各业都在以减少人工成本、提高信息化水平为目标,而简单、成本低廉、识读速度快的QR码标签成了各大行业的首选。通过粘贴QR码标签,并在工厂流水线上进行识别,可以自动记录各零件生产和组装的全过程,实现快速的产品溯源及良品分析;在物流行业通过QR码可实现全自动的包裹分拣,减少人工参与成本;在零售行业,可替代条形码进行商品识别;在移动支付行业,QR码的扫码支付已得到了广泛应用。可见QR码已经成为快速获取物品信息或人类信息的重要入口。
随着QR码进军各大行业,对扫码设备的扫码能力进一步提高要求。因为二维码在识读过程中极易受到各种因素的影响,如QR码的污损,对比度低,光照不均,设备的运动模糊,失焦模糊以及各类噪声等都会影响扫码算法的定位效果,而定位效果的提高往往带来了速度的降低,这对采照环境较差且希望加快生产的工业领域是个矛盾的选择。鉴于此,如何在保证定位速度的同时提高受损QR码的定位效果是亟待解决的问题。
传统图像处理算法十分依赖QR码的定位图案,同时其往往只能针对特定场景进行优化,当遭遇复杂环境时会产生无法正确定位的问题。可能的环境如下:(1)在光照不充分的环境下采集的QR码,具有色彩偏暗,对比度低的缺点;(2)非平面上或发生严重弯曲变形的QR码将无法有效定位;(3)打印在金属材质上的点阵QR码通常前景背景颜色相同;(4)移动环境中采集的QR码容易产生运动模糊;(5)定位图案遭到严重污损时将无法有效定位;(6)失焦后的二维码会产生失焦模糊。传统图像处理算法极难穷尽所有场景,因此当算法应用到其他场景时会导致无法定位的情况发生。现有的深度学习算法经过大量训练后可以有效定位QR码的区域,虽其不再依赖QR码的定位图案,但其定位效果受到模型大小的影响。较大的模型具有较好的定位能力,但由于其需要进行大量的卷积和浮点运算,使得算法速度较慢。深度学习依赖GPU等具有并行计算的硬件设备,这对于硬件落后的扫码设备来说更进一步减慢了定位的速度,甚至无法将算法进行有效移植。
发明内容
发明目的:提供一种根据图像冗余信息快速定位受损QR码的方法,能够充分借助图像冗余信息,不断调整阈值来进行边缘检测及二值化,在此基础上进行邻域的异常过滤,最后实现QR码的快速定位。
技术方案:本发明所述的根据图像冗余信息快速定位受损QR码的方法,包括如下步骤:
步骤1,对包含有QR码的图片进行灰度处理,获取灰度图片;
步骤2,通过随机采样对灰度图片进行清晰度评估;
步骤3,通过自适应阈值对灰度图片进行滤波及边缘检测;
步骤4,通过检测到的边缘确定条纹的宽度,并根据条纹的宽度比例确定QR码的三个定位图案;
步骤5,通过三个定位图案确定QR码区域,再结合定位图案的模块宽度s,重新对QR码区域进行边缘检测,并对边缘进行二值化;
步骤6,通过三个定位图案计算仿射变化矩阵,以此对灰度图像进行仿射变换,并根据二值化结果搜寻出QR码的四条边缘线,边缘线交于QR码的四个角点,可求得单应性变换矩阵,最后通过单应性变换进行定位校正。
进一步的,步骤2中,通过随机采样对灰度图片进行清晰度评估的具体步骤为:
步骤2.3,根据各个采样点坐标在灰度图片上进行采样,取每个采样点及其紧邻的共九个点的像素值的均值作为该采样点的像素值;
步骤2.4,统计所有采样点的像素值,求出全部采样点像素值的均值、方差以及直方分布;
步骤2.5,将方差与清晰度阈值进行比较,若方差大于等于清晰度阈值,则表明清晰度符合要求,直接进入步骤3,若方差小于清晰度阈值,则表明清晰度较低,返回直方分布结果,并进入步骤2.6;
步骤2.6,根据直方分布计算出前景像素值和背景像素值,然后通过前景像素值和背景像素值调整扫码设备的闪光灯亮度,再启动扫码设备重新采集包含有QR码的图片,再返回步骤1;若无法启动扫码设备,则直接进入步骤3。
进一步的,步骤2.6中,根据直方分布计算出前景像素值和背景像素值的具体步骤为:
步骤2.6.1,计算当前像素值的数量梯度:
进一步的,步骤2.6中,根据前景像素值和背景像素值调整扫码设备的闪光灯亮度时,若前景像素值和背景像素值均小于127,则将扫码设备的闪光灯亮度调整至高于上一次,若前景像素值和背景像素值均大于等于127,则将扫码设备的闪光灯亮度调整至低于上一次。
进一步的,步骤3中,通过自适应阈值对灰度图片进行滤波及边缘检测的具体步骤为:
步骤3.1,对灰度图片进行往返式逐行或逐列扫描,通过当前扫描行或扫描列中所有像素点的像素值,求出该扫描行或扫描列的直方分布,再通过直方分布计算出当前扫描行或扫描列的前景像素值和背景像素值,由此构造初始边缘阈值:
步骤3.2,使用指数移动平均对该扫描行或扫描列中每一个像素点进行逐一滤波,滤波满足公式:
步骤3.5,重复步骤3.1-3.4直到求得整个灰度图像每行或每列的边缘集合。
进一步的,步骤4中,根据条纹的宽度比例确定QR码的三个定位图案的具体步骤为:
步骤4.1,将往返式扫描获得的边缘值统一为同一方向的边缘值,c为当前行或列的编号,若c为奇数,则,若c为偶数,则,L为当前行或列的长度,若为横向扫描,则L等于灰度图像宽度W,若为纵向扫描,则L等于灰度图像高度H;
步骤4.2,由各个相邻的边缘构成一个条纹,再计算出各个条纹的宽度:
步骤4.3,根据相邻五个条纹宽度寻找符合1:1:3:1:1的条纹比例,并记录在当前条纹的匹配条纹集合中:
步骤4.4,通过上一行或列匹配条纹集P last 的每个匹配条纹来过滤下一行或列的边缘集E cur ,同样的通过下一行或列匹配条纹集P cur 的每个匹配条纹来过滤上一行或列的边缘集E last ,搜寻出因图像噪声而遗漏的匹配条纹,并记录在相应行或列的匹配条纹集合中;
步骤4.6,将聚类后获得的各个横向条纹和纵向条纹进行对应交叉,则最终确定出定位图案,不交叉的则过滤掉;
步骤4.7,计算定位图案的中心点o、边缘点集V={v 0,v 1,v 2,…,v n}以及模块宽度,式中,d(o, v i)表示横向条纹的边缘点v i和中心点o的横向距离或纵向条纹的边缘点v i和中心点o的纵向距离,若中心点o的坐标为(x o ,y o ),边缘点v i的坐标为(x i ,y i ),则横向距离为ABS(x o ,- x i ),纵向距离为ABS(y o ,- y i )。
进一步的,步骤4.4中,过滤的具体步骤为:
步骤4.4.4,若中的每个边缘值均在中找到与之对应的边缘值,则表明从上一行或列边缘集中找到一个因图像噪声而遗漏的匹配条纹,并将其记录在上一行或列的匹配条纹集中,返回步骤4.4.1,使用下一个匹配条纹进行搜索,直到的所有元素遍历完毕。
进一步的,步骤5的具体步骤为:
步骤5.1,对定位图案进行配对,配对规则为:模块宽度s小于阈值t、颜色相同且不共线;
步骤5.2,根据配对的三个定位图案来确定QR码区域;
步骤5.3,对QR码区域进行边缘检测识别黑白空间,从而形成初步的二值化处理;
步骤5.4,使用均值法计算QR码区域内各像素点在其邻域内的二值化阈值,其中邻域大小是边长为模块宽度s的方形区域,再根据二值化阈值对QR码区域进行二值化处理;
步骤5.5,将步骤5.3的二值化与步骤5.4的二值化进行比较,若像素值都二值化为0,则更新为0,若都二值化为255,则更新为255,否则存在以下三种情况:
情况1,若当前像素点左边的像素点及上边的像素点都二值化为0,则当前像素点二值化为0;
情况2,若当前像素点左边的像素点及上边的像素点都二值化为255,则当前像素点二值化为255;
情况3,若当前像素点左边的像素点及上边的像素点的二值化结果不同,则以这两个像素点的均值作为像素阈值,若当前像素点的像素值大于像素阈值,则二值化为255,否则二值化为0。
进一步的,步骤6的具体步骤为:
步骤6.2,将边缘点集V的每个边缘点坐标通过上述仿射变换映射到仿射域中,通过与标准QR码的坐标对比,确定出该边缘点在标准QR码的位置,找到属于标准QR码上边缘线的边缘点,做最小二乘直线拟合,形成上边缘线;
步骤6.3,根据步骤6.2同理求得下边缘线、左边缘线以及右边缘线;
步骤6.4,沿着上边缘线、下边缘线、左边缘线以及右边缘线在步骤5的二值化图像中采样QR码的边缘黑点,并根据新增加的采样点重新做最小二乘直线拟合,使得直线拟合更加准确;
本发明与现有技术相比,其有益效果是:通过充分利用图像中的冗余信息,尽可能减少图像遍历次数,提高算法速度;采用自适应阈值边缘检测和自适应阈值二值化,提高边缘检测和二值化的效果;图像传入时先进行简单的图像分析,对不清晰的图像实行过滤,能够避免计算资源过渡浪费。
附图说明
图1为本发明的方法流程图;
图2为本发明的QR码横向定位图案条纹示意图;
图3为本发明的QR码定位图案中心及边缘点集识别示意图;
图4为本发明的QR码仿射变换示意图;
图5为本发明的QR码边缘直线拟合示意图;
图6为本发明的QR码边缘点采样示意图;
图7为本发明的QR码单应性变换示意图;
图8为本发明的QR码定位校正示意图。
具体实施方式
下面结合附图对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
如图1所示,本发明公开的根据图像冗余信息快速定位受损QR码的方法,包括如下步骤:
根据图像冗余信息快速定位受损QR码的方法,包括如下步骤:
步骤1,对包含有QR码的图片进行灰度处理,获取灰度图片;
步骤2,通过随机采样对灰度图片进行清晰度评估;
步骤3,通过自适应阈值对灰度图片进行滤波及边缘检测;
步骤4,通过检测到的边缘确定条纹的宽度,并根据条纹的宽度比例确定QR码的三个定位图案;
步骤5,通过三个定位图案确定QR码区域,再结合定位图案的模块宽度s的大小,重新对QR码区域进行边缘检测,并对边缘进行二值化;
步骤6,通过三个定位图案计算仿射变化矩阵,以此对灰度图像进行仿射变换,如图4所示,并根据二值化结果搜寻出QR码的四条边缘线,边缘线交于QR码的四个角点,可求得单应性变换矩阵,最后通过单应性变换进行定位校正。
通过充分利用图像中的冗余信息,尽可能减少图像遍历次数,提高算法速度;采用自适应阈值边缘检测和自适应阈值二值化,提高边缘检测和二值化的效果;图像传入时先进行简单的图像分析,对不清晰的图像实行过滤,能够避免计算资源过渡浪费。
进一步的,步骤2中,通过随机采样对灰度图片进行清晰度评估的具体步骤为:
步骤2.1,使用ISAAC伪随机数生成算法生成个满足正态分布的随机数,其中W和H分别为灰度图像的宽度像素和高度像素;图像在传入时,通过随机采样对图像进行分析,采样方式以正态分布的形式进行采样,使得中间区域的采样点更多,这主要是因为大多数扫码设备在采集QR码数据时,往往QR码在图像边缘的概率较小,因此根据正态分布的随机数对灰度图片进行采样,使采样满足灰度图片中间采样点多以及边缘采样点较少;
步骤2.3,根据各个采样点坐标在灰度图片上进行采样,取每个采样点及其紧邻的共九个点的像素值的均值作为该采样点的像素值,可有效避免异常点的影响;
步骤2.4,统计所有采样点的像素值,求出全部采样点像素值的均值、方差以及直方分布;
步骤2.5,将方差与清晰度阈值进行比较,若方差大于等于清晰度阈值,则表明清晰度符合要求,直接进入步骤3,若方差小于清晰度阈值,则表明清晰度较低,返回直方分布结果,并进入步骤2.6;通过采样的部分像素点进行清晰度分析,倘若清晰度不够可反馈给扫码设备进行下一帧的采集,以采集更清晰的图像进行分析,提高识别率;
步骤2.6,根据直方分布计算出前景像素值和背景像素值,然后通过前景像素值和背景像素值调整扫码设备的闪光灯亮度,再启动扫码设备重新采集包含有QR码的图片,再返回步骤1;若无法启动扫码设备,则直接进入步骤3。
进一步的,步骤2.6中,根据直方分布计算出前景像素值和背景像素值的具体步骤为:
步骤2.6.1,计算当前像素值的数量梯度:
进一步的,步骤2.6中,根据前景像素值和背景像素值调整扫码设备的闪光灯亮度时,若前景像素值和背景像素值均小于127,则将扫码设备的闪光灯亮度调整至高于上一次,若前景像素值和背景像素值均大于等于127,则将扫码设备的闪光灯亮度调整至低于上一次。
进一步的,步骤3中,通过自适应阈值对灰度图片进行滤波及边缘检测的具体步骤为:
步骤3.1,对灰度图片进行往返式逐行或逐列扫描,通过当前扫描行或扫描列中所有像素点的像素值,求出该扫描行或扫描列的直方分布,再通过直方分布计算出当前扫描行或扫描列的前景像素值和背景像素值,由此构造初始边缘阈值:
步骤3.2,使用指数移动平均对该扫描行或扫描列中每一个像素点进行逐一滤波,滤波满足公式:
步骤3.3,通过laplace算子判断当前像素点是否为边缘,若为边缘,则根据的规则筛除弱边缘,否则将当前像素点的坐标作为边缘值存储至当前扫描行或扫描列的边缘集中,并更新自适应阈值;由于laplace算子极易受到异常值的影响,为此通过阈值可以过滤弱边缘,为了避免有效边缘被过滤,阈值会通过周围图像的直方分布进行调整,有效减少了异常边缘对定位图案的判断,能够极大提高了定位图案条纹的识别率;
步骤3.5,重复步骤3.1-3.4直到求得整个灰度图像每行或每列的边缘集合。
图像中一般存在大量的冗余信息,如上下两行的像素点是相近的,因此当上一行存在异常时,可以通过下一行对上一行进行过滤,避免在同一行上进行过多的迭代和判断,有效提高了算法速度。
进一步的,步骤4中,根据条纹的宽度比例确定QR码的三个定位图案的具体步骤为:
步骤4.1,将往返式扫描获得的边缘值统一为同一方向的边缘值,c为当前行或列的编号,若c为奇数,则,若c为偶数,则,L为当前行或列的长度,若为横向扫描,则L等于灰度图像宽度W,若为纵向扫描,则L等于灰度图像高度H;
步骤4.2,由各个相邻的边缘构成一个条纹,再计算出各个条纹的宽度:
步骤4.3,根据相邻五个条纹宽度寻找符合1:1:3:1:1的条纹比例,并记录在当前条纹的匹配条纹集合中:
步骤4.4,通过上一行或列匹配条纹集P last 的每个匹配条纹来过滤下一行或列的边缘集E cur ,同样的通过下一行或列匹配条纹集P cur 的每个匹配条纹来过滤上一行或列的边缘集E last ,搜寻出因图像噪声而遗漏的匹配条纹,并记录在相应行或列的匹配条纹集合中,QR码横向定位图案条纹如图2所示;
步骤4.6,将聚类后获得的各个横向条纹和纵向条纹进行对应交叉,则最终确定出定位图案,不交叉的则过滤掉;
步骤4.7,计算定位图案的中心点o、边缘点集V={v 0,v 1,v 2,…,v n}以及模块宽度,式中,d(o, v i)表示横向条纹的边缘点v i和中心点o的横向距离或纵向条纹的边缘点v i和中心点o的纵向距离,若中心点o的坐标为(x o ,y o ),边缘点v i的坐标为(x i ,y i ),则横向距离为ABS(x o ,- x i ),纵向距离为ABS(y o ,- y i )。
进一步的,步骤4.4中,过滤的具体步骤为:
步骤4.4.4,若中的每个边缘值均在中找到与之对应的边缘值,则表明从上一行或列边缘集中找到一个因图像噪声而遗漏的匹配条纹,并将其记录在上一行或列的匹配条纹集中,返回步骤4.4.1,使用下一个匹配条纹进行搜索,直到的所有元素遍历完毕。
当QR码定位图案受到污染或噪声影响时,通过前后两行或两列边缘的比较,可以有效避免因污染造成的匹配条纹被过滤的情况发生,提高定位图案的识别效果。
进一步的,步骤5的具体步骤为:
步骤5.1,对定位图案进行配对,配对规则为:模块宽度s小于阈值t、颜色相同且不共线;
步骤5.2,根据配对的三个定位图案来确定QR码区域;
步骤5.3,对QR码区域进行边缘检测识别黑白空间,从而形成初步的二值化处理;
步骤5.4,使用均值法计算QR码区域内各像素点在其邻域内的二值化阈值,其中邻域大小是边长为模块宽度s的方形区域,再根据二值化阈值对QR码区域进行二值化处理;
步骤5.5,将步骤5.3的二值化与步骤5.4的二值化进行比较,若像素值都二值化为0,则更新为0,若都二值化为255,则更新为255,否则存在以下三种情况:
情况1,若当前像素点左边的像素点及上边的像素点都二值化为0,则当前像素点二值化为0;
情况2,若当前像素点左边的像素点及上边的像素点都二值化为255,则当前像素点二值化为255;
情况3,若当前像素点左边的像素点及上边的像素点的二值化结果不同,则以这两个像素点的均值作为像素阈值,若当前像素点的像素值大于像素阈值,则二值化为255,否则二值化为0。
对于二值化,首先通过找到的定位图案来锁定QR码区域,这避免了全局阈值对局部图像的影响,然后通过边缘检测查找每个模块的边缘,初步定位各黑白模块的位置,再以模块大小作为自适应阈值的像素邻域大小,采用均值法自适应计算阈值实现二值化,可有效提高二值化的效果。
进一步的,步骤6的具体步骤为:
步骤6.2,将边缘点集V的每个边缘点坐标通过上述仿射变换映射到仿射域中,通过与标准QR码的坐标对比,确定出该边缘点在标准QR码的位置,找到属于标准QR码上边缘线的边缘点,做最小二乘直线拟合,形成上边缘线,如图5所示;
步骤6.3,根据步骤6.2同理求得下边缘线、左边缘线以及右边缘线;
步骤6.4,沿着上边缘线、下边缘线、左边缘线以及右边缘线在步骤5的二值化图像中采样QR码的边缘黑点,如图6所示,并根据新增加的采样点重新做最小二乘直线拟合,使得直线拟合更加准确;
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上作出各种变化。
Claims (9)
1.一种根据图像冗余信息快速定位受损QR码的方法,其特征在于,包括如下步骤:
步骤1,对包含有QR码的图片进行灰度处理,获取灰度图片;
步骤2,通过随机采样对灰度图片进行清晰度评估;
步骤3,通过自适应阈值对灰度图片进行滤波及边缘检测;
步骤4,通过检测到的边缘确定条纹的宽度,并根据条纹的宽度比例确定QR码的三个定位图案;
步骤5,通过三个定位图案确定QR码区域,再结合定位图案的模块宽度s,重新对QR码区域进行边缘检测,并对边缘进行二值化;
步骤6,通过三个定位图案计算仿射变化矩阵,以此对灰度图像进行仿射变换,并根据二值化结果搜寻出QR码的四条边缘线,边缘线交于QR码的四个角点,可求得单应性变换矩阵,最后通过单应性变换进行定位校正。
2.根据权利要求1所述的根据图像冗余信息快速定位受损QR码的方法,其特征在于,步骤2中,通过随机采样对灰度图片进行清晰度评估的具体步骤为:
步骤2.3,根据各个采样点坐标在灰度图片上进行采样,取每个采样点及其紧邻的共九个点的像素值的均值作为该采样点的像素值;
步骤2.4,统计所有采样点的像素值,求出全部采样点像素值的均值、方差以及直方分布;
步骤2.5,将方差与清晰度阈值进行比较,若方差大于等于清晰度阈值,则表明清晰度符合要求,直接进入步骤3,若方差小于清晰度阈值,则表明清晰度较低,返回直方分布结果,并进入步骤2.6;
步骤2.6,根据直方分布计算出前景像素值和背景像素值,然后通过前景像素值和背景像素值调整扫码设备的闪光灯亮度,再启动扫码设备重新采集包含有QR码的图片,再返回步骤1;若无法启动扫码设备,则直接进入步骤3。
3.根据权利要求2所述的根据图像冗余信息快速定位受损QR码的方法,其特征在于,步骤2.6中,根据直方分布计算出前景像素值和背景像素值的具体步骤为:
步骤2.6.1,计算当前像素值的数量梯度:
4.根据权利要求2所述的根据图像冗余信息快速定位受损QR码的方法,其特征在于,步骤2.6中,根据前景像素值和背景像素值调整扫码设备的闪光灯亮度时,若前景像素值和背景像素值均小于127,则将扫码设备的闪光灯亮度调整至高于上一次,若前景像素值和背景像素值均大于等于127,则将扫码设备的闪光灯亮度调整至低于上一次。
5.根据权利要求1所述的根据图像冗余信息快速定位受损QR码的方法,其特征在于,步骤3中,通过自适应阈值对灰度图片进行滤波及边缘检测的具体步骤为:
步骤3.1,对灰度图片进行往返式逐行或逐列扫描,通过当前扫描行或扫描列中所有像素点的像素值,求出该扫描行或扫描列的直方分布,再通过直方分布计算出当前扫描行或扫描列的前景像素值和背景像素值,由此构造初始边缘阈值:
步骤3.2,使用指数移动平均对该扫描行或扫描列中每一个像素点进行逐一滤波,滤波满足公式:
步骤3.5,重复步骤3.1-3.4直到求得整个灰度图像每行或每列的边缘集合。
6.根据权利要求5所述的根据图像冗余信息快速定位受损QR码的方法,其特征在于,步骤4中,根据条纹的宽度比例确定QR码的三个定位图案的具体步骤为:
步骤4.1,将往返式扫描获得的边缘值统一为同一方向的边缘值,c为当前行或列的编号,若c为奇数,则,若c为偶数,则,L为当前行或列的长度,若为横向扫描,则L等于灰度图像宽度W,若为纵向扫描,则L等于灰度图像高度H;
步骤4.2,由各个相邻的边缘构成一个条纹,再计算出各个条纹的宽度:
步骤4.3,根据相邻五个条纹宽度寻找符合1:1:3:1:1的条纹比例,并记录在当前条纹的匹配条纹集合中:
步骤4.4,通过上一行或列匹配条纹集P last 的每个匹配条纹来过滤下一行或列的边缘集E cur ,同样的通过下一行或列匹配条纹集P cur 的每个匹配条纹来过滤上一行或列的边缘集E last ,搜寻出因图像噪声而遗漏的匹配条纹,并记录在相应行或列的匹配条纹集合中;
步骤4.6,将聚类后获得的各个横向条纹和纵向条纹进行对应交叉,则最终确定出定位图案,不交叉的则过滤掉;
7.根据权利要求6所述的根据图像冗余信息快速定位受损QR码的方法,其特征在于,步骤4.4中,过滤的具体步骤为:
8.根据权利要求6所述的根据图像冗余信息快速定位受损QR码的方法,其特征在于,步骤5的具体步骤为:
步骤5.1,对定位图案进行配对,配对规则为:模块宽度s小于阈值t、颜色相同且不共线;
步骤5.2,根据配对的三个定位图案来确定QR码区域;
步骤5.3,对QR码区域进行边缘检测识别黑白空间,从而形成初步的二值化处理;
步骤5.4,使用均值法计算QR码区域内各像素点在其邻域内的二值化阈值,其中邻域大小是边长为模块宽度s的方形区域,再根据二值化阈值对QR码区域进行二值化处理;
步骤5.5,将步骤5.3的二值化与步骤5.4的二值化进行比较,若像素值都二值化为0,则更新为0,若都二值化为255,则更新为255,否则存在以下三种情况:
情况1,若当前像素点左边的像素点及上边的像素点都二值化为0,则当前像素点二值化为0;
情况2,若当前像素点左边的像素点及上边的像素点都二值化为255,则当前像素点二值化为255;
情况3,若当前像素点左边的像素点及上边的像素点的二值化结果不同,则以这两个像素点的均值作为像素阈值,若当前像素点的像素值大于像素阈值,则二值化为255,否则二值化为0。
9.根据权利要求6所述的根据图像冗余信息快速定位受损QR码的方法,其特征在于,步骤6的具体步骤为:
步骤6.2,将边缘点集V的每个边缘点坐标通过上述仿射变换映射到仿射域中,通过与标准QR码的坐标对比,确定出该边缘点在标准QR码的位置,找到属于标准QR码上边缘线的边缘点,做最小二乘直线拟合,形成上边缘线;
步骤6.3,根据步骤6.2同理求得下边缘线、左边缘线以及右边缘线;
步骤6.4,沿着上边缘线、下边缘线、左边缘线以及右边缘线在步骤5的二值化图像中采样QR码的边缘黑点,并根据新增加的采样点重新做最小二乘直线拟合,使得直线拟合更加准确;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110213441.XA CN112560538B (zh) | 2021-02-26 | 2021-02-26 | 一种根据图像冗余信息快速定位受损qr码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110213441.XA CN112560538B (zh) | 2021-02-26 | 2021-02-26 | 一种根据图像冗余信息快速定位受损qr码的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112560538A true CN112560538A (zh) | 2021-03-26 |
CN112560538B CN112560538B (zh) | 2021-05-11 |
Family
ID=75034711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110213441.XA Active CN112560538B (zh) | 2021-02-26 | 2021-02-26 | 一种根据图像冗余信息快速定位受损qr码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112560538B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177959A (zh) * | 2021-05-21 | 2021-07-27 | 广州普华灵动机器人技术有限公司 | 一种快速运动过程中qr码实时提取算法 |
CN117057377A (zh) * | 2023-10-11 | 2023-11-14 | 青岛冠成软件有限公司 | 码的识别匹配方法 |
CN117291208A (zh) * | 2023-11-24 | 2023-12-26 | 四川数盾科技有限公司 | 一种二维码提取方法及*** |
CN118171672A (zh) * | 2024-04-09 | 2024-06-11 | 荣耀终端有限公司 | 条形码识别方法、电子设备、计算机存储介质和程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693409A (zh) * | 2012-05-18 | 2012-09-26 | 四川大学 | 一种快速的图像中二维码码制类型识别方法 |
CN107577979A (zh) * | 2017-07-26 | 2018-01-12 | 中科创达软件股份有限公司 | DataMatrix型二维码快速识别方法、装置及电子设备 |
CN109409163A (zh) * | 2018-11-12 | 2019-03-01 | 凌云光技术集团有限责任公司 | 一种基于纹理特性的qr码快速定位方法 |
CN109993019A (zh) * | 2019-04-15 | 2019-07-09 | 苏州国芯科技股份有限公司 | 基于连通域分析的二维码识别方法、***及设备和介质 |
-
2021
- 2021-02-26 CN CN202110213441.XA patent/CN112560538B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693409A (zh) * | 2012-05-18 | 2012-09-26 | 四川大学 | 一种快速的图像中二维码码制类型识别方法 |
CN107577979A (zh) * | 2017-07-26 | 2018-01-12 | 中科创达软件股份有限公司 | DataMatrix型二维码快速识别方法、装置及电子设备 |
CN109409163A (zh) * | 2018-11-12 | 2019-03-01 | 凌云光技术集团有限责任公司 | 一种基于纹理特性的qr码快速定位方法 |
CN109993019A (zh) * | 2019-04-15 | 2019-07-09 | 苏州国芯科技股份有限公司 | 基于连通域分析的二维码识别方法、***及设备和介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177959A (zh) * | 2021-05-21 | 2021-07-27 | 广州普华灵动机器人技术有限公司 | 一种快速运动过程中qr码实时提取算法 |
CN117057377A (zh) * | 2023-10-11 | 2023-11-14 | 青岛冠成软件有限公司 | 码的识别匹配方法 |
CN117057377B (zh) * | 2023-10-11 | 2024-01-12 | 青岛冠成软件有限公司 | 码的识别匹配方法 |
CN117291208A (zh) * | 2023-11-24 | 2023-12-26 | 四川数盾科技有限公司 | 一种二维码提取方法及*** |
CN117291208B (zh) * | 2023-11-24 | 2024-01-23 | 四川数盾科技有限公司 | 一种二维码提取方法及*** |
CN118171672A (zh) * | 2024-04-09 | 2024-06-11 | 荣耀终端有限公司 | 条形码识别方法、电子设备、计算机存储介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN112560538B (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112560538B (zh) | 一种根据图像冗余信息快速定位受损qr码的方法 | |
CN110866924B (zh) | 一种线结构光中心线提取方法及存储介质 | |
CN111179243A (zh) | 一种基于计算机视觉的小尺寸芯片裂纹检测方法及*** | |
CN113591967B (zh) | 一种图像处理方法、装置、设备及计算机存储介质 | |
EP1678659B1 (en) | Method and image processing device for analyzing an object contour image, method and image processing device for detecting an object, industrial vision apparatus, smart camera, image display, security system, and computer program product | |
CN111325721A (zh) | 一种基于红外热成像的气体泄漏检测方法及*** | |
CN115170669B (zh) | 基于边缘特征点集配准的识别定位方法及***、存储介质 | |
CN113538603B (zh) | 一种基于阵列产品的光学检测方法、***和可读存储介质 | |
CN116704516B (zh) | 一种用于水溶肥料包装的视觉检测方法 | |
CN114972575A (zh) | 一种基于轮廓边缘的直线拟合算法 | |
CN110490924A (zh) | 一种基于多尺度Harris的光场图像特征点检测方法 | |
CN115078365A (zh) | 一种软包装印刷质量缺陷检测方法 | |
CN114612490B (zh) | 一种基于显微镜图像的栅藻类细胞统计方法 | |
CN111189854A (zh) | 玻璃盖板自动检测***缺陷分层检测方法 | |
CN109784328B (zh) | 定位条码的方法、终端及计算机可读存储介质 | |
CN112085723B (zh) | 一种货车摇枕弹簧窜出故障自动检测方法 | |
CN110348363B (zh) | 基于多帧角度信息融合消除相似车辆干扰的车辆跟踪方法 | |
CN110969612A (zh) | 二维码印刷缺陷检测方法 | |
CN111178111A (zh) | 二维码检测方法、电子设备、存储介质及*** | |
CN111126286A (zh) | 车辆动态检测方法、装置、计算机设备及存储介质 | |
CN115546139A (zh) | 一种基于机器视觉的缺陷检测方法、装置及电子设备 | |
CN111402185A (zh) | 一种图像检测方法及装置 | |
CN115546145A (zh) | 一种基于机器视觉的缺陷检测方法、装置及电子设备 | |
CN114120320A (zh) | 一种图像多目标信息识别方法、***及介质 | |
CN109784121B (zh) | Dot-peen DPM码的识别方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: No.15 Xinghuo Road, Jiangbei new district, Nanjing, Jiangsu Province, 210031 Patentee after: Dongji Technology Co.,Ltd. Address before: No.15 Xinghuo Road, Jiangbei new district, Nanjing, Jiangsu Province, 210031 Patentee before: JIANGSU SEUIC TECHNOLOGY Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |