一种条码和二维码的区分方法
【技术领域】
[0001] 本发明设及一种条码和二维码的区分方法。
【背景技术】
[0002] 随着智能识别技术的发展,条码及二维码识别技术因其方便性和快捷性,已经广 泛地应用于我们生活的各个方面,成为我们生活中不可或缺的一个组成部分。但是在嵌入 式平台实现的条码及二维码图像识别技术,需要同时识别多种不同种类的条码和二维码, 现有的应用于条码及二维码识别模块中的条码和二维码区分方案描述如下: 方案一: 不对条码和二维码进行区分,对获取到的某幅图像,条码及二维码识别模块分别进行 条码识别和二维码识别,若正确识别则返回,否则将分别尝试条码识别和二维码识别。显而 易见,运种识别方案是十分耗时的,极大地降低了识别速度。
[0003] 方案二: 对条码和二维码进行简单区分,该方案首先对图像进行定位,然后根据定位区域的几 何特征如长宽比来区分条码和二维码。运种方法仅利用了条码区域更趋向于长方形W及二 维码区域更趋于正方形的特性,区分方法比较简单,容易出现错误区分,从而导致识别率下 降。
[0004] 综上所述,目前在条码及二维码识别模块中还没有有效的方法用来区分条码和二 维码,因此找出有效的区分条码和二维码的方法具有很大的实用价值。
【发明内容】
[0005] 本发明提供了一种识别速度快、识别率高的条码和二维码的区分方法。
[0006] 本发明采用的技术方案是: 一种条码和二维码的区分方法,其区分步骤如下: 1) 对图像进行采集,得到灰度图像; 2) 对采集到的灰度图像进行初定位,先是对灰度图像进行规范化,然后进行灰度图像 分块并判断每块图像是前景还是背景,最后对背景表进行处理并通过寻找连通区域得到条 码或二维码所在的前景区域; 3) 对前景区域内的图像进行水平边缘检测,先用水平边缘检测算子计算每个前景像素 点处的加权值,然后对加权后的图像进行二值化; 4) 对前景区域从上至下每行检测直线,统计检测成功的水平直线条数,当水平直线条 数大于预设条数阔值时,则判定该图像是条码,结束流程,否则进入步骤5); 5) 对前景区域内的图像进行垂直边缘检测,先用垂直边缘检测算子计算每个前景像素 点处的加权值,然后对加权后的图像进行二值化; 6) 对前景区域从左至右每列检测直线,统计检测成功的垂直直线条数,当垂直直线条 数大于预设条数阔值时,则判定该图像是条码,否则判定该图像为二维码,结束流程。
[0007] 进一步,步骤2)中分块图像是按从左至右从上至下的顺序进行前景还是背景的判 断。
[0008] 进一步,步骤2)中分块图像的前景还是背景的判断方法如下:先对每个分块图像 计算方差,若方差大于预设方差阔值则判断为前景,否则为背景。
[0009] 进一步,所述预设方差阔值范围在100-200之间。
[0010] 进一步,步骤2)中背景表的处理是采用数学形态学的膨胀腐蚀运算。
[0011] 进一步,步骤3)中的水平边缘检测算子和步骤5)中的垂直边缘检算子测均采用 Sobel的3*3边缘检测算子。
[0012] 进一步,步骤4)和步骤6)中当检测到直线的像素点数大于预设像素点数阔值时, 则表示检测直线成功。
[OOK]进一步,所述直线的像素点数的预设像素点数阔值为50。
[0014] 进一步,步骤4)和步骤6)中直线条数的预设条数阔值均为7。
[0015] 本发明的应用场合:特别适合应用在嵌入式领域的条码及二维码识别模块中,因 此适合应用条码及二维码识别模块进行识别的场合。
[0016] 本发明的有益效果: 1、可W准确地区分条码和二维码,模块可W调用相应的识别算法而不用逐一尝试,大 大提高了条码及二维码识别模块的识别速度。
[0017] 2、相较于利用几何特征来区分条码和二维码的方法,本方法的正确率大大提高, 从而提高了条码及二维码识别模块的识别率。
【附图说明】
[0018] 图1是本发明的流程示意图。
【具体实施方式】
[0019] 下面结合具体实施例来对本发明进行进一步说明,但并不将本发明局限于运些具 体实施方式。本领域技术人员应该认识到,本发明涵盖了权利要求书范围内所可能包括的 所有备选方案、改进方案和等效方案。
[0020] 参照图1,一种条码和二维码的区分方法,其区分步骤如下: 1)采集灰度图像,运里采集的图像为CMOS图像。该图像采集模块由图像传感器忍片 (CMOS )和镜头组组成,并通过标准图像传感器接口与其他模块相连接。
[0021] 2)对图像进行初定位,首先对图像进行规范化,然后分块计算方差,若方差大于 一定的阔值100-200则认为该块为前景,否则该块为背景,最后对背景表进行数学形态学处 理并通过寻找连通区域得到最终的定位结果,即得到相应的前景区域。
[0022] 3)水平边缘检测,首先利用Sobel的3*3水平边缘检测算子计算每个前景像素点处 的加权值,然后利用自适应二值化方法对加权后的图像进行二值化。水平边缘检测算子如 下所示:_
4)对前景区域从上至下每行检测直线,当检测到直线的像素点数大于某一阔值50时, 则表示检测直线成功,最后统计检测成功的水平直线条数。
[0023] 5)根据条码和二维码图像的特征,只有条码才能检测到多条直线。因此,当检测 到的水平直线条数大于某一阔值7时,则判定该图像为条码,结束流程;否则,继续W下流 程。
[0024] 6)垂直边缘检测,首先利用Sobel的3*3垂直边缘检测算子计算每个前景像素点 处的加权值,然后利用自适应二值化方法对加权后的图像进行二值化。垂直边缘检测算子 如下所示:
7)对前景区域从左至右每列检测直线,当检测到直线的像素点数大于某一阔值50时, 则表示检测直线成功,最后统计检测成功的垂直直线条数。
[0025] 8)根据条码和二维码图像的特征,只有条码才能检测到多条直线。因此,当检测 到的垂直直线条数大于某一阔值7时,则判定该图像为条码;否则,判定该图像为二维码,结 束整个流程。
[0026] 本发明采用了如下技术对条码和二维码进行区分: (1)图像定位技术:该技术主要利用分块方差法与数学形态学的方法准确地找到条码 和二维码所在的区域,为后续处理打下坚实的基础。具体的定位流程描述如下:首先对图像 进行规范化,然后将图像进行分块,并按照从左至右从上至下的顺序判断每块图像是前景 还是背景,最后利用数学形态学的膨胀腐蚀运算对背景表进行处理,最终通过寻找连通区 域找出条码或二维码所在区域。
[0027] (2)边缘检测技术:本发明采用的边缘检测算子为Sobel边缘检测算子,且将水平 边缘检测算子和垂直边缘检测算子区分开来,即分别检测水平边缘和垂直边缘,有利于分 别在水平和垂直两个方向上寻找直线。条码图像是由一个个条空相间的长条组成的长方 形,二维码图像是由一个个小方块组成的正方形,利用运一特征可W将条码和二维码区分 开来,且有利于更准确地提取边缘。
[0028] (3)检测直线技术:在边缘检测后的二值图上(仅限前景区域),沿着某个方向寻找 某直线段上的像素点,当像素点的个数达到一定的阔值50即视为找到一条直线。继续沿着 相同方向寻找直线,当检测到的直线条数达到一定的阔值7,即认为该图像为条码,否则为 二维码。
[0029] 本发明的应用场合:特别适合应用在嵌入式领域的条码及二维码识别模块中,因 此适合应用条码及二维码识别模块进行识别的场合。
【主权项】
1. 一种条码和二维码的区分方法,其区分步骤如下: 1) 对图像进行采集,得到灰度图像; 2) 对采集到的灰度图像进行初定位,先是对灰度图像进行规范化,然后进行灰度图像 分块并判断每块图像是前景还是背景,最后对背景表进行处理并通过寻找连通区域得到条 码或二维码所在的前景区域; 3) 对前景区域内的图像进行水平边缘检测,先用水平边缘检测算子计算每个前景像素 点处的加权值,然后对加权后的图像进行二值化; 4) 对前景区域从上至下每行检测直线,统计检测成功的水平直线条数,当水平直线条 数大于预设条数阈值时,则判定该图像是条码,结束流程,否则进入步骤5); 5) 对前景区域内的图像进行垂直边缘检测,先用垂直边缘检测算子计算每个前景像素 点处的加权值,然后对加权后的图像进行二值化; 6) 对前景区域从左至右每列检测直线,统计检测成功的垂直直线条数,当垂直直线条 数大于预设条数阈值时,则判定该图像是条码,否则判定该图像为二维码,结束流程。2. 如权利要求1所述的一种条码和二维码的区分方法,其特征在于:步骤2)中分块图像 是按从左至右从上至下的顺序进行前景还是背景的判断。3. 如权利要求1所述的一种条码和二维码的区分方法,其特征在于:步骤2)中分块图像 的前景还是背景的判断方法如下:先对每个分块图像计算方差,若方差大于预设方差阈值 则判断为前景,否则为背景。4. 如权利要求3所述的一种条码和二维码的区分方法,其特征在于:所述预设方差阈值 的范围为100-200之间。5. 如权利要求1所述的一种条码和二维码的区分方法,其特征在于:步骤2)中背景表的 处理是采用数学形态学的膨胀腐蚀运算。6. 如权利要求1~5之一所述的一种条码和二维码的区分方法,其特征在于:步骤3)中的 水平边缘检测算子和步骤5)中的垂直边缘检算子测均采用Sobel的3*3边缘检测算子。7. 如权利要求6所述的一种条码和二维码的区分方法,其特征在于:步骤4)和步骤6)中 当检测到直线的像素点数大于预设像素点数阈值时,则表示检测直线成功。8. 如权利要求7所述的一种条码和二维码的区分方法,其特征在于:所述直线的像素点 数的预设像素点数阈值为50。9. 如权利要求8所述的一种条码和二维码的区分方法,其特征在于:步骤4)和步骤6)中 直线条数的预设条数阈值均为7。
【专利摘要】一种条码和二维码的区分方法,采集灰度图像;对灰度图像进行初定位,确定前景区域;对前景区域内的图像进行水平边缘检测,先用水平边缘检测算子计算每个前景像素点处的加权值,然后对加权后的图像进行二值化;对前景区域从上至下每行检测直线,统计检测成功的水平直线条数,当水平直线条数大于预设条数阈值时,则判定该图像是条码,结束流程,否则继续检测;对前景区域内的图像进行垂直边缘检测,先用垂直边缘检测算子计算每个前景像素点处的加权值,然后对加权后的图像进行二值化;对前景区域从左至右每列检测直线,统计检测成功的垂直直线条数,当垂直直线条数大于预设条数阈值时,则判定该图像是条码,否则判定该图像为二维码,结束流程。
【IPC分类】G06K7/14
【公开号】CN105488448
【申请号】CN201510920306
【发明人】罗美美, 杨波
【申请人】杭州晟元数据安全技术股份有限公司
【公开日】2016年4月13日
【申请日】2015年12月11日