CN110263595B - 一种二维码检测方法及装置 - Google Patents
一种二维码检测方法及装置 Download PDFInfo
- Publication number
- CN110263595B CN110263595B CN201910553935.5A CN201910553935A CN110263595B CN 110263595 B CN110263595 B CN 110263595B CN 201910553935 A CN201910553935 A CN 201910553935A CN 110263595 B CN110263595 B CN 110263595B
- Authority
- CN
- China
- Prior art keywords
- image
- energy
- area
- window
- parameter
- 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.)
- Active
Links
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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种二维码检测方法及装置,方法包括:获得目标图像;对所述目标图像进行灰度处理,得到灰度图像;对所述灰度图像进行二值化处理,得到二值化图像;基于所述二值化图像的图像能量参数,获得所述二值化图像中的至少一个识别区域,所述识别区域中包含二维码码区。可见,本发明中对图像二值化之后通过对图像能量参数进行获取,进而找到二值化图像中包含二维码码区的区域,实现二维码所在区域的快速定位,由此在后续二维码的识别中只对包含二维码码区的区域进行二维码识别,从而减少识别耗时,达到提高识别效率的目的。
Description
技术领域
本发明涉及二维码检测技术领域,尤其涉及一种二维码检测方法及装置。
背景技术
目前现有的二维码检测方案中,需要将二维码的码区人为选出并将码区放在指定识读区,才能实现二维码检测及识别,当码区在识读区中所占比例过低或码区背景复杂时,会出现识别耗时较长甚至长时间无法识别的情况。
因此,亟需一种能够快速检测出二维码所在区域的技术方案。
发明内容
有鉴于此,本发明提供一种二维码检测方法及装置,用以解决现有技术中需要快速检测出二维码所在区域的技术问题。
本发明提供了一种二维码检测方法,包括:
获得目标图像;
对所述目标图像进行灰度处理,得到灰度图像;
对所述灰度图像进行二值化处理,得到二值化图像;
基于所述二值化图像的图像能量参数,获得所述二值化图像中的至少一个识别区域,所述识别区域中包含二维码码区。
上述方法,优选的,基于所述二值化图像的图像能量参数,获得所述二值化图像中的至少一个识别区域,包括:
利用滑动窗口对所述二值化图像进行图像遍历,以获得每个所述滑动窗口下的窗口区域的图像能量参数;
基于所述图像能量参数,确定至少一个目标窗口区域,所述目标窗口区域中包含二维码码区;
对存在区域交集的所述目标窗口区域进行合并,得到至少一个识别区域。
上述方法,优选的,对所述灰度图像进行二值化处理,得到二值化图像,包括:
获得所述灰度图像的整图灰度均值;
获得与所述整图灰度均值相对应的阈值区间及所述阈值区间对应的阈值间隔值;
基于所述阈值区间和所述阈值间隔值,确定所述灰度图像的二值化阈值;
以所述二值化阈值,对所述灰度图像进行二值化处理,得到二值化图像。
上述方法,优选的,对所述灰度图像进行二值化处理,得到二值化图像,包括:
对所述灰度图像进行分区,得到多个分区图像;
获得每个所述分区图像的分区灰度均值及其对应的阈值系数;
将所述分区灰度均值与其对应阈值系数相乘,得到所述分区图像的二值化阈值;
以所述二值化阈值,分别对所述二值化阈值对应的分区图像进行二值化处理,得到二值化图像。
上述方法,优选的,获得每个所述滑动窗口下的窗口区域的图像能量参数,包括:
利用积分图计算方法对每个所述滑动窗口下的窗口区域的图像能量参数进行计算,以得到每个所述窗口区域的图像能量参数;
其中,所述图像能量参数包括:所述窗口区域的图像能量值或所述窗口区域的图像能量密度。
上述方法,优选的,基于所述图像能量参数,确定目标窗口区域,包括:
在所述图像能量参数满足预设的标准码区能量范围的情况下,计算所述窗口区域在经过腐蚀处理后的腐蚀能量参数;
对所述图像能量参数与所述腐蚀能量参数满足预设的腐蚀规则的窗口区域进行分块,得到多个区域子块;
计算所述区域子块的子块能量参数;
将所述区域子块的子块能量参数满足预设的子块能量规则的所述窗口区域确定为包含二维码码区的目标窗口区域。
上述方法,优选的,所述图像能量参数与所述腐蚀能量参数满足预设的腐蚀规则,包括:
所述图像能量参数处于第一参数范围,所述腐蚀能量参数处于第二参数范围,所述图像能量参数与所述腐蚀能量参数之间的差值处于第三参数范围;
上述方法,优选的,所述区域子块的子块能量参数满足预设的子块能量规则,包括:
所述区域子块的子块能量参数处于所述第一参数范围,且关于所述窗口区域中预设的基准线对称的区域子块之间的子块能量参数的差值处于第四参数范围。
上述方法,优选的,还包括:
对所述二值化图像利用形态学算法进行滤波;
其中,所述形态学算法包括:开运算、闭运算、膨胀运算和腐蚀运算中一种或多种组合形成的运算算法。
本发明提供了一种二维码检测装置,包括:
图像获得单元,用于获得目标图像;
灰度处理单元,用于对所述目标图像进行灰度处理,得到灰度图像;
二值化处理单元,用于对所述灰度图像进行二值化处理,得到二值化图像;
能量检测单元,用于基于所述二值化图像的图像能量参数,获得所述二值化图像中的至少一个识别区域,所述识别区域中包含二维码码区。
从上述技术方案可以看出,本发明公开的一种二维码检测方法及装置,在对图像进行灰度及二值化处理之后,通过利用二值化图像的图像能量参数来对二值化图像中包含二维码码区的识别区域进行检测,进而在确定包含二维码码区的识别区域之后,对识别区域的图像进行二维码识别,以此来获得识别结果。可见,本发明中对图像二值化之后通过对图像能量参数进行获取,进而找到二值化图像中包含二维码码区的区域,实现二维码所在区域的快速定位,由此在后续二维码识别中只对包含二维码码区的区域进行二维码识别,从而减少识别耗时,达到提高识别效率的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种二维码检测方法的流程图;
图2为本发明实施例一提供的一种二维码检测方法的部分流程图;
图3为本发明实施例二提供的一种二维码检测装置的结构图;
图4为本发明实施例二提供的一种二维码检测装置的另一结构图;
图5为本发明实施例的示例流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考图1,为本发明实施例一提供的一种二维码检测方法的实现流程图,该方法适用于能够进行图像处理的设备中,如计算机或服务器等。本实施例中的方法主要用于对二维码进行快速有效的识别。
具体的,本实施例中的方法可以包括以下步骤:
步骤101:获得目标图像。
其中,目标图像可以为通过摄像头或相机等设备采集到的图像,如手机摄像头或POS机扫描口等对需要进行二维码识别的区域或场景下进行图像采集所获得的图像,该目标图像中包含待识别的二维码码区图像,也可能包含有背景区域图像。
步骤102:对目标图像进行灰度处理,得到灰度图像。
其中,本实施例中可以利用分量法、最大值法、平均值法或加权平均法等算法对目标图像进行灰度处理,使得目标图像中的RGB三项数据相一致,得到灰度图像。
需要说明的是,灰度图像中像素的像素值可以为0到255中的任一值。
步骤103:对灰度图像进行二值化处理,得到二值化图像。
其中,本实施例中可以根据灰度图像中的清晰度值或者灰度图像中的图像元素多样程度或者像素复杂程度来使用不同的二值化处理算法,对灰度图像进行二值化。例如,如果灰度图像中清晰度较高或者灰度图像中图像元素较少或者像素复杂度较低时,可以采用基于全局阈值的二值化处理算法,反之,可以采用基于局部阈值的二值化处理算法。
需要说明的是,二值化图像中像素的像素值为0或255。
步骤104:基于二值化图像的图像能量参数,获得二值化图像中的至少一个识别区域。
其中,本实施例中获得的识别区域为包含二维码码区的区域。也就是说,本实施例中基于二值化图像的图像能量参数对二值化图像中的二维码码区进行筛选及确定,从而得到二值化图像中包含二维码码区的识别区域。
需要说明的是,本实施例中二值化图像的图像能量参数能够表征二值化图像中各像素的分布及像素值,本实施例中利用二维码码区图像特有的图像能量特点,通过对二值化图像的图像能量参数进行解析,进而获得二值化图像中包含二维码码区的识别区域,实现二维码所在区域的快速定位。
其中,包含二维码码区的识别区域可以为一个或多个,即目标图像中可能包含一个或多个二维码。
步骤105:对识别区域的图像进行二维码识别,得到识别结果。
其中,本实施例中可以利用二维码识别算法对包含二维码码区的识别区域的图像进行识别,以得到识别结果,如网页链接、名片等结果。可见,本实施例中只对二值化图像中包含二维码码区的识别区域进行二维码识别,而对其他区域的图像不进行识别,从而减少识别耗时。
需要说明的是,本实施例中在得到识别区域之后,该识别区域可以用于如前述的二维码识别,也可以用于其他场景,如二维码打印输出或者码块的修改等,不仅限于二维码识别场景。基于本实施例中得到的识别区域,所能够实现的各种场景下的技术方案均在本申请的保护范围内。
由上述方案可知,本发明实施例一提供的一种二维码检测方法,在对图像进行灰度及二值化处理之后,通过利用二值化图像的图像能量参数来对二值化图像中包含二维码码区的识别区域进行检测,进而在确定包含二维码码区的识别区域之后,对识别区域的图像进行二维码识别,以此来获得识别结果。可见,本实施例中对图像二值化之后通过对图像能量参数进行获取,进而找到二值化图像中包含二维码码区的区域,实现二维码所在区域的快速定位,由此在后续二维码识别中只对包含二维码码区的区域进行二维码识别,从而减少识别耗时,达到提高识别效率的目的。
在一种实现方式中,图1中的步骤104在基于二值化图像的图像能量参数获得识别区域时,可以通过以下方式实现,如图2中所示:
步骤201:利用滑动窗口对二值化图像进行图像遍历,以获得每个滑动窗口下的窗口区域的图像能量参数。
其中,滑动窗口可以为递变尺寸(N*N,N的上下限可以根据历史实验数据设置)的窗口,本实施例中利用递变尺寸的滑动窗口对二值化图像进行遍历,以得到遍历后的多个窗口区域,并对各窗口区域的图像能量参数进行计算。
具体的,本实施例中可以利用快速的积分图计算方法对每个滑动窗口下的窗口区域的图像能量参数进行计算,以得到每个窗口区域的图像能量参数。
其中,图像能量参数可以包括有:窗口区域的图像能量值或窗口区域的图像能量密度。其中,窗口区域的图像能量值是指窗口区域中基于像素的能量值,如灰度值,而图像能量密度为图像能量值与像素个数的比值。
步骤202:基于图像能量参数,确定至少一个目标窗口区域。
其中,目标窗口区域中包含二维码码区,也就是说,目标窗口区域中预测的可能包含有二维码码区,其他窗口区域不包含二维码码区。
具体的,本实施例中在获得窗口区域的图像能量参数之后,可以首先判断图像能量参数是否满足预设的标准码区能量范围,其中,标准码区能量范围是指:一个标准码区的码图能量或能量密度对应的范围,具体可以根据二维码印刷标准中的印刷像素来计算获得,并通过大量样本(不同种类不同场景下的样本)加以校正,设置能量范围中的上限和下限,由此,本实施例中可以判断图像能量参数中的能量值或能量密度是否处于对应的标准码区能量值范围或密度范围,来判断图像能量参数是否满足标准码区能量范围;
如果图像能量参数是否满足预设的标准码区能量范围,那么计算窗口区域在经过腐蚀处理后的腐蚀能量参数,其中,计算腐蚀能量参数具体可以为:对窗口区域进行腐蚀运算,再对腐蚀后的窗口区域的图像计算得到腐蚀能量值或腐蚀能量密度,由此得到腐蚀能量参数;需要说明的是,腐蚀处理会将像素区域较小的像素腐蚀消除,而保留像素区域较大的像素,也就是说,本实施例中的腐蚀处理可以理解为对窗口区域中的点状的像素区域进行腐蚀消除,而保留块状的像素区域,相应的,在如果窗口区域经过腐蚀处理后,窗口区域的能量参数发生变化,与腐蚀之前的能量参数之间具有较大的区别,如腐蚀处理后的窗口区域的能量值或能量密度会下降等。
之后,对图像能量参数与腐蚀能量参数满足预设的腐蚀规则的窗口区域(没有经过腐蚀处理的窗口区域)进行分块,得到多个区域子块,其中,图像能量参数与腐蚀能量参数满足腐蚀规则,是指:所述图像能量参数处于第一参数范围,腐蚀能量参数处于第二参数范围,所述图像能量参数与所述腐蚀能量参数之间的差值处于第三参数范围,例如,第一参数范围为30-150的能量值范围,第二参数范围为10-40的能量值范围,第三参数范围可以为10-60的能量值范围,对于腐蚀前的能量值处于30-150,腐蚀后的能量值处于10-40,且腐蚀前后的能量差在10-60的窗口区域可以认为是包含二维码码区的区域,而对于其他区域则认为是噪声或者其他情况的区域,例如:如果某个窗口区域腐蚀前的图像灰度平均值为40,而腐蚀后的图像灰度平均值为20,那么差值20大于10且小于60,那么认为窗口区域是包含二维码码区的区域,而如果某个窗口区域腐蚀前的图像灰度平均值为150,而腐蚀后的图像灰度平均值为20,那么差值130已经超出10-60的范围,那么认为窗口区域中属于噪声较多的区域,而并不是包含二维码码区的区域,等等,由此,本实施例中对图像能量值在第一参数范围、腐蚀能量值在第二参数范围且能量值差值在第三参数范围的窗口区域进行分块,每个窗口区域可以被分为多个区域子块;
具体的,对窗口区域的分块可以按照一定的规则进行,例如,将窗口区域平均分成四个子块外加取中间部分共五个子块,进一步的取中间十字区域及四周边框的区域子块,等等;
然后,对分块来的区域子块分别计算子块能量参数,如子块能量值或子块能量密度等,具体的可以利用快速的积分图计算方法计算子块能量值和子块能量密度;
最后,将区域子块的子块能量参数满足预设的子块能量规则的窗口区域确定为包含二维码区域的目标窗口区域,其中,区域子块的子块能量参数满足预设的子块能量规则,可以为:所述区域子块的子块能量参数处于所述第一参数范围,且关于所述窗口区域中预设的基准线对称的区域子块之间的子块能量参数的差值处于第四参数范围,也就是说,在窗口区域中区域子块之间关于子块能量值或子块能量密度相同或相近到差值在值较小的第四参数范围内,如0-10的能量值范围,且区域子块的子块能量值仍然处于窗口区域的图像能量值所在的第一参数范围内,此时,确定该窗口区域中包含二维码码区,并标记该窗口区域为目标窗口区域。
需要说明的是,目标窗口区域可以为一个或者多个,即在滑动窗口下的各个窗口区域中可能存在一个或多个包含二维码码区的窗口区域。
步骤203:对存在区域交集的目标窗口区域进行合并,得到至少一个识别区域。
其中,本实施例中可以通过对目标窗口区域之间在水平、数值、倾斜等各个方向上进行判断,以确定出在各方向上存在交集的目标窗口区域,将这些存在交集的目标窗口区域进行合并,即:对目标窗口区域之间取合集,获得能够属于同一片图像区域即连成片的目标窗口区域,最终得到合并的区域,即为识别区域,而不能进行合并的目标窗口区域则作为一个单独的识别区域保留,由此,这里的识别区域可能是一个或者多个。
在一种实现方式中,图1中的步骤103在对灰度图像进行二值化处理时可以根据灰度图像的清晰度或者灰度图像中的元素复杂度采用不同的二值化处理方式,如下:
在一种处理方式中,步骤103可以通过全局阈值的二值化算法实现,如下:
首先,获得灰度图像的整图灰度均值,如计算整图的各个像素的灰度值的平均值;
之后,获得与整图灰度均值相对应的阈值区间及阈值区间对应的阈值间隔值,其中,本实施例中可以利用历史经验数据预先设置多个阈值区间及其阈值间隔值,例如,通过收集基于全局阈值的二值化处理中所收敛到的多个历史阈值来确定不同的全局灰度均值对应的阈值区间及相应进行迭代的阈值间隔,本实施例中在获得整图灰度均值之后在这些阈值区间中确定与整图灰度均值相对应的阈值区间及该阈值区间对应的阈值间隔值;
然后,基于阈值区间和阈值间隔值,确定灰度图像的二值化阈值,例如,在阈值区间内,每隔一个阈值间隔值取一个阈值对灰度图像进行迭代计算,最终确定灰度图像的二值化阈值;
最后,以灰度图像的二值化阈值,对灰度图像进行二值化处理,得到二值化图像,例如,对于灰度值大于二值化阈值的像素设置像素值为255,即白色像素,对于灰度值小于二值化阈值的像素设置像素值为0,即黑色像素。
在另一种处理方式中,步骤103可以通过局部阈值的二值化算法实现,如下:
首先,对灰度图像进行分区,得到多个分区图像;
之后,获得每个分区图像的分区灰度均值及其对应的阈值系数,其中,分区灰度均值可以通过对每个分区图像的像素的灰度值进行加和再平均计算得到,而阈值系数为预设值,不同的分区灰度均值对应于不同的阈值系数,如0.1、0.3或0.6等,而预设的阈值系数的总和为1,也就是说,对于不同的分区灰度均值在其阈值计算中所占的权重不同;
然后,将分区灰度均值与其对应的阈值系数相乘,得到分区图像的二值化阈值,也就是说,将分区图像的分区灰度均值与其对应的阈值系数相乘,得到的乘积即为该分区图像的二值化阈值;
最后,以二值化阈值,分别对二值化阈值对应的分区图像进行二值化处理,得到二值化图像,例如,在各个分区图像中,对于灰度值大于该分区图像的二值化阈值的像素设置像素值为255,即白色像素,对于灰度值小于该分区图像的二值化阈值的像素设置像素值为0,即黑色像素。
在具体实现中,为了提高包含二维码码区的识别区域的准确性,可以在得到二值化图像之后,对二值化图像进行滤波,例如,利用形态学算法对二值化图像进行滤波,再对滤波之后的二值化图像进行图像能量参数计算及后续的区域识别,进而得到包含二维码码区的识别区域,并进行二维码识别,得到识别结果。
具体的,本实施例中的形态学算法中可以为:开运算、闭运算、膨胀运算和腐蚀运算中的一种或多种组合形成的运算算法,例如:对于二值化图像可以进行一次开运算,可以消除这部分噪声同时保持码点不变,同时进行一次闭运算,可以使码区变得充实显著,而在开运算和闭运算的过程中对二值化图像穿插加入膨胀运算和腐蚀运算的组合运算,将若干次的运算结果进行复合,得到滤波后的二值化图像,从而消除二值化图像中的噪声,也能够得到二值化图像中更清晰的码图。
参考图3,为本发明实施例二提供的一种二维码检测装置的结构示意图,该装置适用于能够进行图像处理的设备中,如计算机或服务器等。本实施例中的装置主要用于对二维码进行快速有效的识别。
具体的,本实施例中的装置可以包括以下功能单元:
图像获得单元301,用于获得目标图像。
其中,图像获得单元301可以为摄像头或相机等设备上的功能单元,用于对目标图像进行采集,目标图像可以为如手机摄像头或POS机扫描口等对需要进行二维码识别的区域或场景下进行图像采集所获得的图像,该目标图像中包含待识别的二维码码区图像,也可能包含有背景区域图像。
灰度处理单元302,用于对所述目标图像进行灰度处理,得到灰度图像。
其中,本实施例中灰度处理单元302可以利用分量法、最大值法、平均值法或加权平均法等算法对目标图像进行灰度处理,使得目标图像中的RGB三项数据相一致,得到灰度图像。
需要说明的是,灰度图像中像素的像素值可以为0到255中的任一值。
二值化处理单元303,用于对所述灰度图像进行二值化处理,得到二值化图像。
其中,本实施例中二值化处理单元303可以根据灰度图像中的清晰度值或者灰度图像中的图像元素多样程度或者像素复杂程度来使用不同的二值化处理算法,对灰度图像进行二值化。例如,如果灰度图像中清晰度较高或者灰度图像中图像元素较少或者像素复杂度较低时,可以采用基于全局阈值的二值化处理算法,反之,可以采用基于局部阈值的二值化处理算法。
需要说明的是,二值化图像中像素的像素值为0或255。
能量检测单元304,用于基于所述二值化图像的图像能量参数,获得所述二值化图像中的至少一个识别区域。
其中,本实施例中获得的识别区域为包含二维码码区的区域。也就是说,本实施例中能量检测单元304基于二值化图像的图像能量参数对二值化图像中的二维码码区进行筛选及确定,从而得到二值化图像中包含二维码码区的识别区域。
需要说明的是,本实施例中二值化图像的图像能量参数能够表征二值化图像中各像素的分布及像素值,本实施例中能量检测单元304利用二维码码区图像特有的图像能量特点,通过对二值化图像的图像能量参数进行解析,进而获得二值化图像中包含二维码码区的识别区域,实现二维码所在区域的快速定位。
其中,包含二维码码区的识别区域可以为一个或多个,即目标图像中可能包含一个或多个二维码。
区域识别单元305,用于对所述识别区域的图像进行二维码识别,得到识别结果。
其中,本实施例中区域识别单元305可以利用二维码识别算法对包含二维码码区的识别区域的图像进行识别,以得到识别结果,如网页链接、名片等结果。可见,本实施例中只对二值化图像中包含二维码码区的识别区域进行二维码识别,而对其他区域的图像不进行识别,从而减少识别耗时。
由上述方案可知,本发明实施例二提供的一种二维码检测装置,在对图像进行灰度及二值化处理之后,通过利用二值化图像的图像能量参数来对二值化图像中包含二维码码区的识别区域进行检测,进而在确定包含二维码码区的识别区域之后,对识别区域的图像进行二维码识别,以此来获得识别结果。可见,本实施例中对图像二值化之后通过对图像能量参数进行获取,进而找到二值化图像中包含二维码码区的区域,实现二维码所在区域的快速定位,由此在后续二维码识别中只对包含二维码码区的区域进行二维码识别,从而减少识别耗时,达到提高识别效率的目的。
在一种实现方式中,二值化处理单元303对所述灰度图像进行二值化处理可以通过以下方式实现:
获得所述灰度图像的整图灰度均值;获得与所述整图灰度均值相对应的阈值区间及所述阈值区间对应的阈值间隔值;基于所述阈值区间和所述阈值间隔值,确定所述灰度图像的二值化阈值;以所述二值化阈值,对所述灰度图像进行二值化处理,得到二值化图像。
或者,二值化处理单元303对所述灰度图像进行二值化处理也可以通过以下方式实现:
对所述灰度图像进行分区,得到多个分区图像;获得每个所述分区图像的分区灰度均值及其对应的阈值系数;将所述分区灰度均值与其对应阈值系数相乘,得到所述分区图像的二值化阈值;以所述二值化阈值,分别对所述二值化阈值对应的分区图像进行二值化处理,得到二值化图像。
在一种实现方式中,能量检测单元304在基于所述二值化图像的图像能量参数,获得所述二值化图像中的至少一个识别区域时,可以通过以下方式实现:
首先,利用滑动窗口对所述二值化图像进行图像遍历,以获得每个所述滑动窗口下的窗口区域的图像能量参数,例如,利用积分图计算方法对每个所述滑动窗口下的窗口区域的图像能量参数进行计算,以得到每个所述窗口区域的图像能量参数;其中,所述图像能量参数包括:所述窗口区域的图像能量值或所述窗口区域的图像能量密度;
其次,基于所述图像能量参数,确定至少一个目标窗口区域,所述目标窗口区域中包含二维码码区,例如,在所述图像能量参数满足预设的标准码区能量范围的情况下,计算所述窗口区域在经过腐蚀处理后的腐蚀能量参数;对所述图像能量参数与所述腐蚀能量参数满足预设的腐蚀规则(如所述图像能量参数处于第一参数范围,所述腐蚀能量参数处于第二参数范围,所述图像能量参数与所述腐蚀能量参数之间的差值处于第三参数范围)的窗口区域进行分块,得到多个区域子块;计算所述区域子块的子块能量参数;将所述区域子块的子块能量参数满足预设的子块能量规则(如所述区域子块的子块能量参数处于所述第一参数范围,且关于所述窗口区域中预设的基准线对称的区域子块之间的子块能量参数的差值处于第四参数范围)的所述窗口区域确定为包含二维码码区的目标窗口区域;
最后,对存在区域交集的所述目标窗口区域进行合并,得到至少一个识别区域;
进一步的,本实施例中的装置还可以包括有滤波单元306,如图4中所示,其中滤波单元306主要用于:
在二值化处理单元303得到二值化图像之后,对所述二值化图像利用形态学算法进行滤波,经过滤波的二值化图像传输给能量检测单元304;
其中,所述形态学算法包括:开运算、闭运算、膨胀运算和腐蚀运算中一种或多种组合形成的运算算法,由此,利用形态学算法对二值化图像进行滤波后,消除二值化图像中的噪声,也能够得到二值化图像中更清晰的码图。
以下结合图5中的流程图,以用户手机识别建筑物墙体上的二维码为例,对本实施例中的方案进行举例说明:
步骤1、获得图像,将图像为灰度图像,对灰度图像进行二值化处理:
其中,在实际应用中分两种情况,一种手机所拍图片比较清晰,干扰因素较少,此时采用码图清晰,与背景相差比较大,此种情况采用基于全局阈值的二值化算法效果好并且耗时低,全局阈值的大小通过大量的不同类型不同场景的样本实验得出,通过一定的增量进行迭代;另一种所拍图片有一定的干扰因素(码图上印有背景,周围图案影响,噪声,阴影,曝光等),此时采用一种自适应局部二值化效果较好,先对图片领域进行划分,通过快速积分图的计算方法求当前像素领域内的灰度均值,根据均值确定阈值系数(根据不同的灰度级设定不同的阈值区间),因此每一块领域内阈值系数均与当前块内的灰度有关,为自适应阈值,灰度均值与阈值系数的乘积来确定当前的二值阈值,此种方法可以很好的处理码图有复杂背景、阴影、曝光等情况,同时,因为采用快速能量密度的方式避免了重复计算,耗时低,通过上面两种二值化方式的结合,效果显著。
步骤2、对二值化图像采用形态学滤波:在二值化产生的图像中会有少量的图像含有噪声点,此种噪声点相比码图小很多而且分布不规则,先利用开运算可以消除这部分噪声同时保持码图不变,同时再进行闭运算,可以使码图区的码图变得充实显著,在两次过程中穿插加入膨胀腐蚀组合,将若干次的结果进行复合可以消除噪音同时得到清晰的码图。
步骤3,在步骤2的过程后用递变尺寸的滑动窗口对二值化图像进行遍历,通过一种快速积分图方法计算滑动窗口下窗口区域的能量值或能量密度,并与标准码区的码图能量或能量密度进行比对,其中,一个标准码区的码图能量或能量密度可以根据二维码印刷标准中计算获得,并通过大量样本(不同种类不同场景等)加以校正,设定能量值或密度的阈值上下限,对满足要求的区域进行腐蚀操作,此时再对腐蚀后的区域计算能量值或能量密度,当前腐蚀的形态学元素大小通过计算获得。如果窗口区域包含二维码码区,那么腐蚀操作过后码区中的码图会全被腐蚀,能量会降到某个阈值以下(此阈值也是大量实验样本所得),由此,符合上述两次能量要求的窗口区域即认为可能包含二维码码区的区域,进入步骤4。
步骤4、对步骤3所挑选的框即窗口区域进行二次判断,将框平均分成四个子框外加取中间部分共五个部分作为五个子框,同时取中间十字区域子框及四周边框子区域,判断每一个子框的能量密度与整体框区域能量密度是否相近,且判断子框之间能量密度是否相近,如果是,那么记录该框(窗口区域),该框即为包含二维码码区的区域。其中,相近是指子框间的差异小于阈值,而阈值大小通过大量实验样本获得。子框的选取与码的类型有关,不仅限于上述的几种形状,判别的方式可根据相似对称性来决定。
步骤5、通过步骤4的框作为一个候选框,会被临时记下,每一个新产生的框会与已经产生的候选框进行对比,在水平、竖直、倾斜的方向有交集即可进行合并,并更新历史框的记录位置,若不能进行合并会被作为一个单独的候选框记录下来,也就是说,将包含二维码码区的框按照相似相融原理进行区域合并,得到最大的可能包含二维码码区的候选框。
最后,对包含二维码码区的候选框进行二维码识别,得到识别结果。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种二维码检测方法,其特征在于,包括:
获得目标图像;
对所述目标图像进行灰度处理,得到灰度图像;
对所述灰度图像进行二值化处理,得到二值化图像;
基于所述二值化图像的图像能量参数,获得所述二值化图像中的至少一个识别区域,所述识别区域中包含二维码码区;
所述基于所述二值化图像的图像能量参数,获得所述二值化图像中的至少一个识别区域,包括:
利用滑动窗口对所述二值化图像进行图像遍历,以获得每个所述滑动窗口下的窗口区域的图像能量参数;
基于所述图像能量参数,判断图像能量参数是否满足预设的标准码区能量范围,确定至少一个目标窗口区域,所述目标窗口区域中包含二维码码区;
所述预设的标准码区能量范围是指:一个标准码区的码图能量或能量密度对应的范围,具体可以根据二维码印刷标准中的印刷像素来计算获得,并通过不同种类不同场景下的样本加以校正,设置能量范围中的上限和下限;
所述获得每个所述滑动窗口下的窗口区域的图像能量参数,包括:
利用积分图计算方法对每个所述滑动窗口下的窗口区域的图像能量参数进行计算,以得到每个所述窗口区域的图像能量参数;
其中,所述图像能量参数包括:所述窗口区域的图像能量值或所述窗口区域的图像能量密度。
2.根据权利要求1所述的方法,其特征在于,对所述灰度图像进行二值化处理,得到二值化图像,包括:
获得所述灰度图像的整图灰度均值;
获得与所述整图灰度均值相对应的阈值区间及所述阈值区间对应的阈值间隔值;
基于所述阈值区间和所述阈值间隔值,确定所述灰度图像的二值化阈值;
以所述二值化阈值,对所述灰度图像进行二值化处理,得到二值化图像。
3.根据权利要求1所述的方法,其特征在于,对所述灰度图像进行二值化处理,得到二值化图像,包括:
对所述灰度图像进行分区,得到多个分区图像;
获得每个所述分区图像的分区灰度均值及其对应的阈值系数;
将所述分区灰度均值与其对应阈值系数相乘,得到所述分区图像的二值化阈值;
以所述二值化阈值,分别对所述二值化阈值对应的分区图像进行二值化处理,得到二值化图像。
4.根据权利要求1所述的方法,其特征在于,基于所述图像能量参数,确定目标窗口区域,包括:
在所述图像能量参数满足预设的标准码区能量范围的情况下,计算所述窗口区域在经过腐蚀处理后的腐蚀能量参数;
对所述图像能量参数与所述腐蚀能量参数满足预设的腐蚀规则的窗口区域进行分块,得到多个区域子块;
计算所述区域子块的子块能量参数;
将所述区域子块的子块能量参数满足预设的子块能量规则的所述窗口区域确定为包含二维码码区的目标窗口区域。
5.根据权利要求4所述的方法,其特征在于,所述图像能量参数与所述腐蚀能量参数满足预设的腐蚀规则,包括:
所述图像能量参数处于第一参数范围,所述腐蚀能量参数处于第二参数范围,所述图像能量参数与所述腐蚀能量参数之间的差值处于第三参数范围。
6.根据权利要求5所述的方法,其特征在于,所述区域子块的子块能量参数满足预设的子块能量规则,包括:
所述区域子块的子块能量参数处于所述第一参数范围,且关于所述窗口区域中预设的基准线对称的区域子块之间的子块能量参数的差值处于第四参数范围。
7.根据权利要求1所述的方法,其特征在于,还包括:
对所述二值化图像利用形态学算法进行滤波;
其中,所述形态学算法包括:开运算、闭运算、膨胀运算和腐蚀运算中一种或多种组合形成的运算算法。
8.一种二维码检测装置,其特征在于,包括:
图像获得单元,用于获得目标图像;
灰度处理单元,用于对所述目标图像进行灰度处理,得到灰度图像;
二值化处理单元,用于对所述灰度图像进行二值化处理,得到二值化图像;
能量检测单元,用于基于所述二值化图像的图像能量参数,获得所述二值化图像中的至少一个识别区域,所述识别区域中包含二维码码区;
所述基于所述二值化图像的图像能量参数,获得所述二值化图像中的至少一个识别区域,包括:
利用滑动窗口对所述二值化图像进行图像遍历,以获得每个所述滑动窗口下的窗口区域的图像能量参数;
基于所述图像能量参数,判断图像能量参数是否满足预设的标准码区能量范围,确定至少一个目标窗口区域,所述目标窗口区域中包含二维码码区;
所述预设的标准码区能量范围是指:一个标准码区的码图能量或能量密度对应的范围,具体可以根据二维码印刷标准中的印刷像素来计算获得,并通过大量样本不同种类不同场景下的样本加以校正,设置能量范围中的上限和下限;
所述获得每个所述滑动窗口下的窗口区域的图像能量参数,包括:
利用积分图计算方法对每个所述滑动窗口下的窗口区域的图像能量参数进行计算,以得到每个所述窗口区域的图像能量参数;
其中,所述图像能量参数包括:所述窗口区域的图像能量值或所述窗口区域的图像能量密度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910553935.5A CN110263595B (zh) | 2019-06-25 | 2019-06-25 | 一种二维码检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910553935.5A CN110263595B (zh) | 2019-06-25 | 2019-06-25 | 一种二维码检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110263595A CN110263595A (zh) | 2019-09-20 |
CN110263595B true CN110263595B (zh) | 2023-02-17 |
Family
ID=67921220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910553935.5A Active CN110263595B (zh) | 2019-06-25 | 2019-06-25 | 一种二维码检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110263595B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245538A (zh) * | 2019-06-26 | 2019-09-17 | 北京慧眼智行科技有限公司 | 一种点阵码定位方法及系统 |
CN111368573A (zh) * | 2020-03-02 | 2020-07-03 | 凌云光技术集团有限责任公司 | 一种基于几何特征约束的定位方法 |
CN111462099B (zh) * | 2020-04-05 | 2024-01-23 | 中国人民解放军总医院 | 一种基于快速积分图监测的图像细胞区域定位方法 |
CN112085651B (zh) * | 2020-09-23 | 2021-06-29 | 中国空气动力研究与发展中心高速空气动力研究所 | 一种基于图像自适应阈值与特征提取的激波自动检测跟踪算法 |
CN113283262A (zh) * | 2020-12-29 | 2021-08-20 | 深圳怡化电脑股份有限公司 | 一种二维码定位方法、装置、电子设备、机器可读介质 |
CN114359238A (zh) * | 2022-01-07 | 2022-04-15 | 自然资源部第三海洋研究所 | 一种识别微塑料的方法、装置和存储介质 |
CN114330408A (zh) * | 2022-03-14 | 2022-04-12 | 深圳市联志光电科技有限公司 | 一种图像增强方法以及图像增强装置 |
CN117021809B (zh) * | 2023-08-15 | 2024-06-25 | 深圳市大满包装有限公司 | 一种基于数码印刷的二维防伪码印刷调控方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103093225A (zh) * | 2013-01-05 | 2013-05-08 | 武汉矽感科技有限公司 | 二维码图像的二值化方法 |
CN104504662A (zh) * | 2014-12-26 | 2015-04-08 | 北京慧眼智行科技有限公司 | 一种基于同态滤波的图像处理方法及系统 |
CN105260694A (zh) * | 2015-10-22 | 2016-01-20 | 佛山科学技术学院 | 一种基于多级骨干提取与分析的二维码区域定位方法 |
CN106709394A (zh) * | 2016-12-12 | 2017-05-24 | 北京慧眼智行科技有限公司 | 一种图像处理方法及装置 |
CN109101856A (zh) * | 2018-09-25 | 2018-12-28 | 广东工业大学 | 一种二维码图像识别方法及装置 |
CN109800615A (zh) * | 2018-12-28 | 2019-05-24 | 新大陆数字技术股份有限公司 | 二维码区域的检测定位方法及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4208481B2 (ja) * | 2002-04-30 | 2009-01-14 | トッパン・フォームズ株式会社 | 2次元コード読取方法および2次元コード読取システム並びにこれらに使用される2次元コードが付された物品 |
EP1615420B1 (en) * | 2003-04-15 | 2009-08-19 | Fujitsu Limited | Code recognizing method and device |
JP3957734B1 (ja) * | 2006-08-25 | 2007-08-15 | 株式会社バンダイナムコゲームス | プログラム、情報記憶媒体、2次元コード生成システム、2次元コード |
JP5057560B2 (ja) * | 2006-12-14 | 2012-10-24 | 株式会社バンダイナムコゲームス | プログラム、情報記憶媒体、2次元コード、印刷物、2次元コード画像、2次元コード画像の表示制御方法、2次元コード生成システム |
CN105069389B (zh) * | 2015-07-27 | 2017-10-31 | 福建联迪商用设备有限公司 | 二维码分块解码方法及系统 |
CN105160339B (zh) * | 2015-08-06 | 2018-05-04 | 四川大学 | 一种二维码打印质量在线评估方法 |
CN106709393B (zh) * | 2015-11-13 | 2020-07-24 | 航天信息股份有限公司 | 一种qr二维码二值化方法和系统 |
CN109902530B (zh) * | 2019-03-04 | 2022-04-19 | 厦门商集网络科技有限责任公司 | 一种二维码解码方法及终端 |
-
2019
- 2019-06-25 CN CN201910553935.5A patent/CN110263595B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103093225A (zh) * | 2013-01-05 | 2013-05-08 | 武汉矽感科技有限公司 | 二维码图像的二值化方法 |
CN104504662A (zh) * | 2014-12-26 | 2015-04-08 | 北京慧眼智行科技有限公司 | 一种基于同态滤波的图像处理方法及系统 |
CN105260694A (zh) * | 2015-10-22 | 2016-01-20 | 佛山科学技术学院 | 一种基于多级骨干提取与分析的二维码区域定位方法 |
CN106709394A (zh) * | 2016-12-12 | 2017-05-24 | 北京慧眼智行科技有限公司 | 一种图像处理方法及装置 |
CN109101856A (zh) * | 2018-09-25 | 2018-12-28 | 广东工业大学 | 一种二维码图像识别方法及装置 |
CN109800615A (zh) * | 2018-12-28 | 2019-05-24 | 新大陆数字技术股份有限公司 | 二维码区域的检测定位方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110263595A (zh) | 2019-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110263595B (zh) | 一种二维码检测方法及装置 | |
CN114418957B (zh) | 基于机器人视觉的全局和局部二值模式图像裂缝分割方法 | |
CN109658424B (zh) | 一种改进的鲁棒二维otsu阈值图像分割方法 | |
CN105740876B (zh) | 一种图像预处理方法及装置 | |
CN107784669A (zh) | 一种光斑提取及其质心确定的方法 | |
CN112261403B (zh) | 车载摄像头的脏污物检测装置及方法 | |
CN110378893B (zh) | 图像质量评价方法、装置和电子设备 | |
CN110913243A (zh) | 一种视频审核的方法、装置和设备 | |
CN111696064B (zh) | 图像处理方法、装置、电子设备及计算机可读介质 | |
CN111027546A (zh) | 一种字符分割方法、装置以及计算机可读存储介质 | |
CN113379739B (zh) | 超声图像的识别方法、装置、设备及存储介质 | |
CN110502977B (zh) | 一种建筑物变化分类检测方法、系统、装置及存储介质 | |
CN117094975A (zh) | 钢铁表面缺陷检测方法、装置及电子设备 | |
CN110287752B (zh) | 一种点阵码检测方法及装置 | |
CN110555863A (zh) | 一种运动目标检测方法、装置和计算机可读存储介质 | |
JP2008210387A (ja) | 文書画像の2値化性能を改善するノイズ除去装置及びノイズ除去プログラム | |
CN114820394A (zh) | 一种基于稳健参数估计的图像噪点滤波方法及装置 | |
Khellah | Textured image denoising using dominant neighborhood structure | |
CN111951254B (zh) | 基于边缘引导加权平均的源相机识别方法及系统 | |
JPH10285399A (ja) | 画像の二値化方法 | |
JP2003216953A (ja) | 画像から対象物を抽出する方法およびその装置 | |
CN107491746B (zh) | 一种基于大梯度像素分析的人脸预筛选方法 | |
CN117423113B (zh) | 一种档案ocr图像自适应去噪方法 | |
CN118095971B (zh) | 一种ad钙奶饮料加工工艺评估方法、系统及介质 | |
CN111476821B (zh) | 基于在线学习的目标跟踪方法 |
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 |