一维码识别方法及装置与流程

文档序号:24875257发布日期:2021-04-30 12:50阅读:252来源:国知局
一维码识别方法及装置与流程

本发明涉及扫码识别领域,尤其涉及一种一维码识别方法及装置。



背景技术:

当前一维码识别是通过读取黑条宽度和黑条间的间隔比例来实现的,在理想情况下,摄像头成像中黑条和白条是按显示比例一定分布的。但在实际情况中,受外界光线及摄像头曝光时间的影响,最终一维码在摄像头的成像中是不会按实物比例分布的,强光或过度曝光下,黑条宽度会明显减少,同时白条宽度会明显增多,容易造成识别出错或无法识别,且上述识别方式需要等曝光完全调整完毕才能识读,识读速度慢。



技术实现要素:

针对上述技术问题,本发明实施例提供了一种一维码识别方法及装置。

本发明实施例的第一方面提供一种一维码识别方法,所述方法包括:

获取图像中一维码的特征区块的相邻黑条与白条的第一宽度;

根据所述第一宽度,确定所述特征区块中每一相邻黑条与白条的宽度之和;

根据所述宽度之和之间的比值,确定宽度调制比;

根据所述宽度调制比,对所述一维码的每个黑条边缘或每个白条边缘的宽度进行调节;

识别宽度调节后的一维码。

可选地,所述特征区块包括中间分隔符、起始符、终止符或者校验符中的一个或多个。

可选地,所述根据所述宽度调制比,对所述一维码的每个黑条边缘或每个白条边缘的宽度进行调节,包括:

获取所述图像的曝光状态;

根据所述曝光状态及所述宽度调制比,对所述一维码的每个黑条边缘或每个白条边缘的宽度进行调节。

可选地,所述根据所述曝光状态及所述宽度调制比,对所述一维码的每个黑条边缘或每个白条边缘的宽度进行调节,包括:

当所述曝光状态为过曝时,根据所述宽度调制比,增加或减少所述一维码的每个黑条边缘的宽度。

可选地,所述根据所述曝光状态及所述宽度调制比,对所述一维码的每个黑条边缘或每个白条边缘的宽度进行调节,包括:

当所述曝光状态为欠曝时,根据所述宽度调制比,增加或减少所述一维码的每个白条边缘的宽度。

本发明实施例的第二方面提供一种一维码识别装置,所述装置包括:

获取模块,用于获取图像中一维码的特征区块的相邻黑条与白条的第一宽度;

第一计算模块,用于根据所述第一宽度,确定所述特征区块中每一相邻黑条与白条的宽度之和;

第二计算模块,用于根据所述宽度之和之间的比值,确定宽度调制比;

调节模块,用于根据所述宽度调制比,对所述一维码的每个黑条边缘或每个白条边缘的宽度进行调节;

识别模块,用于识别宽度调节后的一维码。

可选地,所述特征区块包括中间分隔符、起始符、终止符或者校验符中的一个或多个。

可选地,所述调节模块在根据所述宽度调制比,对所述一维码的每个黑条边缘或每个白条边缘的宽度进行调节时,具体用于:

获取所述图像的曝光状态;

根据所述曝光状态及所述宽度调制比,对所述一维码的每个黑条边缘或每个白条边缘的宽度进行调节。

可选地,所述调节模块在根据所述曝光状态及所述宽度调制比,对所述一维码的每个黑条边缘或每个白条边缘的宽度进行调节时,具体用于:

当所述曝光状态为过曝时,根据所述宽度调制比,增加或减少所述一维码的每个黑条边缘的宽度。

可选地,所述调节模块在根据所述曝光状态及所述宽度调制比,对所述一维码的每个黑条边缘或每个白条边缘的宽度进行调节时,具体用于:

当所述曝光状态为欠曝时,根据所述宽度调制比,增加或减少所述一维码的每个白条边缘的宽度。

本发明实施例提供的技术方案中,基于一维码中特征区块的每一相邻黑条与白条的宽度之和之间的比值,确定宽度调制比,从而对一维码的黑条边缘或白条边缘的宽度进行调节,获得正确的黑条与白条的宽度比,能够在设备调整曝光时识读,识别速度快,且在强光或弱光下也能识读到一维码,加宽了设备识读环境限制。

附图说明

图1a为目前一种一维码的条码格式示意图;

图1b为图1a所示的一维码在正常情况下的部分条码结构的识别示意图;

图1c为图1a所示的一维码在过曝情况下的部分条码的结构示意图;

图2为本发明一实施例中的一维码识别方法的方法流程示意图;

图3a为图1a所示的一维码在正常情况下的中间分隔符的识别示意图;

图3b为图1a所示的一维码在过曝情况下的中间分隔符的结构示意图;

图4为本发明一实施例中的一维码识别装置的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,下述实施例可以进行组合。

一维码以黑条、白条比例来识别其内容,每一种一维码都有它们自己的规则,比如ean-13码,它以黑条代表1,以白条代表0,每7字节代表一位数据。示例性的,请参见图1a和图1b,正常情况下,能很清晰的读取出来101000101100110110100111011001101100010010011,根据规则可以知道这代表着“起始符920152”,一维码与其内容相符。

而在强光下或摄像头过度曝光下,图像的黑条就会变窄,白条会变宽,如图1c。如果这时候使用传统算法的话,根据黑条和白条比例读出来的0和1会因为不符合ean-13的起始符规定而被判定为不是ean-13码或被判定为其他一维码而造成无法识读或识读出错误内容。在这种情况下,传统算法只能通过调整颜色检测阈值或等待曝光调整到正常情况才能正确识读。而这两种方式一方面会减少识读场合宽度(光线较暗是会被判定为全部为1),另一方面会增加解码时间(取决于设备何时把曝光调整到正常),都会降低设备的解码效果,不符合需求。

例如,中间分隔符的二进制数据是01010,相邻黑条与白条的宽度比(下文可称作黑白比)也就是白:黑:白:黑:白=1:1:1:1:1,正常情况下完全符合这个规定,但在过曝情况下,传统算法会读出来00100100,黑白比=2:1:2:1:2,这种情况在开始符、结束符等一维码特征快上也有,故传统算法不会认为这个是ean-13的一维码。

对于此,本发明实施例基于一维码中特征区块的每一相邻黑条与白条的宽度之和之间的比值,确定宽度调制比,从而对一维码的黑条边缘或白条边缘的宽度进行调节,获得正确的黑条与白条的宽度比,能够在设备调整曝光时识读,识别速度快,且在强光或弱光下也能识读到一维码,加宽了设备识读环境限制。

图2为本发明一实施例中的一维码识别方法的方法流程示意图,请参见图2,本发明实施例的一维码识别方法可以包括如下步骤:

s201、获取图像中一维码的特征区块的相邻黑条与白条的第一宽度;

其中,特征区块包括中间分隔符、起始符、终止符或者校验符中的一个或多个,但不限于此,具体可以根据一维码的条码格式,确定一维码的特征区块。示例性的,一维码为ean-13码,特征区块可以为中间分隔符、起始符、终止符或者校验符,也可以包括中间分隔符、起始符、终止符、校验符中的两个或两个以上。

特征区块的相邻黑条与白条的第一宽度的识别方式可以采用现有识别算法,本发明实施例对此不做说明。

s202、根据第一宽度,确定特征区块中每一相邻黑条与白条的宽度之和;

s203、根据宽度之和之间的比值,确定宽度调制比;

在步骤s203中,具体地,根据宽度之和之间的比值,确定一维码的条码格式;根据条码格式,确定宽度调制比。

请结合图1a、图3a及图3b,取一维码的中间分隔符,正常情况下:

白:黑:白:黑:白=1:1:1:1:1;

(白+黑):(黑+白):(白+黑):(黑+白):(白+黑)=2:2:2:2=1:1:1:1。

过度曝光的情况下:

白:黑:白:黑:白=2:1:2:1:2;

(白+黑):(黑+白):(白+黑):(黑+白):(白+黑)=3:3:3:3=1:1:1:1。

因为过度曝光情况下的相邻黑条与白条白的宽度(占一维码总长度的比例)和正常的一样,都是1:1:1:1,故可以认为上述过度曝光下的一维码是ean-13码,宽度调制比为1:1:1:1:1。

s204、根据宽度调制比,对一维码的每个黑条边缘或每个白条边缘的宽度进行调节;

其中,步骤s204的实现过程可包括:

(1)、获取图像的曝光状态;

曝光状态的获取方式可以采用现有方式,例如,检测图像的亮度,将图像的亮度与标准亮度进行比对,确定曝光状态。

本实施例的曝光状态可为过曝或欠曝。

(2)、根据曝光状态及宽度调制比,对一维码的每个黑条边缘或每个白条边缘的宽度进行调节。

示例性的,当曝光状态为过曝(图像亮度过高)时,根据宽度调制比,增加或减少一维码的每个黑条边缘的宽度。例如,判断上述过度曝光下的一维码是ean-13码后,根据一维码的黑条与白条的实际宽度增加或减少黑条边缘的宽度,宽度调制比为1:1:1:1:1,并根据增加了或减少了的宽度,覆盖至所有黑条的边缘,以获得原本正常情况下一维码的宽度。

示例性的,当曝光状态为欠曝(图像亮度过低)时,根据宽度调制比,增加或减少一维码的每个白条边缘的宽度。在图像亮度过低的情况下,一维码的黑条宽度会增加,白条宽度会减少,该一维码处理方法和过曝时一维码处理方法相类似,不做概述。

s205、识别宽度调节后的一维码。

即对黑条与白条宽度正常的一维码进行识别,识别方式为现有识别方式(如红外扫码),本发明不做概述。

在强光或摄像头过度曝光的情况下,摄像头成像出来的一维码与实物的一维码的黑条白条宽度不一样,这会导致识别不正确或识别失败。如标准宽度比黑:白:黑:白:黑为2:3:2:4:3的条码,在强光或过度曝光的情况下,会变成1:4:1:5:2。本发明使用相邻黑条加白条的宽度之和的比例来推算出正确的实物黑条与白条的宽度比,如标准比例黑:白:黑:白:黑为2:3:2:4:3的条码,在强光或过度曝光的情况下,会变成1:4:1:5:2,可以看出,不论宽度怎么变,相邻黑条与白条的宽度相加的数值都不会变,故通过相邻黑条与白条宽度之和之间的比值,推算出正确的实物的相邻黑条与白条宽度之和之间的比值,从而识别出正确的内容。

对应于上述实施例的一维码识别方法,本发明实施例还提供一种一维码识别装置,请参见图4,本发明实施例的一维码识别装置可包括:

获取模块100,用于获取图像中一维码的特征区块的相邻黑条与白条的第一宽度;

第一计算模块200,用于根据第一宽度,确定特征区块中每一相邻黑条与白条的宽度之和;

第二计算模块300,用于根据宽度之和之间的比值,确定宽度调制比;

调节模块400,用于根据宽度调制比,对一维码的每个黑条边缘或每个白条边缘的宽度进行调节;

识别模块500,用于识别宽度调节后的一维码。

可选地,特征区块包括中间分隔符、起始符、终止符或者校验符中的一个或多个。

可选地,调节模块400在根据宽度调制比,对一维码的每个黑条边缘或每个白条边缘的宽度进行调节时,具体用于:获取图像的曝光状态;根据曝光状态及宽度调制比,对一维码的每个黑条边缘或每个白条边缘的宽度进行调节。

可选地,调节模块400在根据曝光状态及宽度调制比,对一维码的每个黑条边缘或每个白条边缘的宽度进行调节时,具体用于:当曝光状态为过曝时,根据宽度调制比,增加或减少一维码的每个黑条边缘的宽度。

可选地,调节模块400在根据曝光状态及宽度调制比,对一维码的每个黑条边缘或每个白条边缘的宽度进行调节时,具体用于:当曝光状态为欠曝时,根据宽度调制比,增加或减少一维码的每个白条边缘的宽度。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1