CN102799850B - 一种条形码识别方法和装置 - Google Patents
一种条形码识别方法和装置 Download PDFInfo
- Publication number
- CN102799850B CN102799850B CN201210227196.9A CN201210227196A CN102799850B CN 102799850 B CN102799850 B CN 102799850B CN 201210227196 A CN201210227196 A CN 201210227196A CN 102799850 B CN102799850 B CN 102799850B
- Authority
- CN
- China
- Prior art keywords
- bar code
- line segment
- character
- point
- carried out
- 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
Landscapes
- Character Discrimination (AREA)
- Character Input (AREA)
Abstract
本发明提供了一种条形码识别方法和装置,其中方法包括:对用户终端获取到的条形码图像进行二值化;对二值化后的条形码图像进行横向投影,根据横向投影值的分布状况定位出字符区域;将字符区域进行纵向投影,根据纵向投影值的分布状况定位出各字符;对各字符进行文字识别,并将文字识别结果进行组合得到条形码识别结果。本发明将文字识别技术引入条形码的识别,采用识别条形码下方的字符的方式得到条形码的识别结果,而不是通过计算黑白条宽度进行解码的方式,对于拍摄条件有限的用户终端提高了条形码识别的成功率。
Description
【技术领域】
本发明涉及计算机应用技术领域,特别涉及一种条形码识别方法和装置。
【背景技术】
条形码又称条码(Barcode)是将宽度不等的多个黑条和白条(也称空白),按照一定的编码规则排列,用以表达一组信息的图形标识符,通常会在条形码下方配以数字或字母等字符,如图1所示。条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等很多信息,因而在商品流通、图书管理、邮政管理、银行系统等很多领域都得到广泛的应用。
现有的条形码识别方案以图像处理为基础,对用户终端拍摄或扫描到的条形码图像进行二值化或灰度梯度分析,从而获取条形码内每个黑白条的准确宽度,再根据宽度进行解码。然而这种严重依赖于对图像的二值化和灰度梯度分析的方式,很容易受到用户终端的拍照条件限制,例如对于分辨率较低、对焦模糊的用户终端可能会无法准确地根据图像的灰度信息计算出条形码内每个黑白条的宽度,从而导致解码失败。
【发明内容】
有鉴于此,本发明提供了一种条形码识别方法和装置,以便于在拍照条件有限的用户终端上提高条形码的识别成功率。
具体技术方案如下:
一种条形码识别方法,该方法包括:
S1、对用户终端获取到的条形码图像进行二值化;
S2、对二值化后的条形码图像进行横向投影,根据横向投影值的分布状况定位出字符区域;
S3、将字符区域进行纵向投影,根据纵向投影值的分布状况定位出各字符;
S4、对各字符进行文字识别,并将文字识别结果进行组合得到条形码识别结果。
根据本发明一优选实施例,在所述步骤S1之前还包括:
A1、在用户终端获取到的条形码图像中定位条形码区域,确定条形码区域的角点;
A2、基于条形码区域的角点对条形码图像进行几何校正,得到标准角度的条形码图像。
根据本发明一优选实施例,所述步骤A1具体包括:
A11、将用户终端获取到的条形码图像进行灰度化;
A12、对灰度化后的条形码图像进行边缘检测得到边缘图像;
A13、对所述边缘图像进行hough线段检测,确定条形码各线段的端点;
A14、对各线段进行聚类,利用聚类结果中各线段的端点确定条形码区域的角点。
根据本发明一优选实施例,所述步骤A14具体包括:
从各线段中选取种子线段,将与种子线段的角度和距离在设定范围内的线段进行聚合;
利用聚合在一起的各线段的起点和终点分别做直线拟合,得到各起点拟合得到的起点线段以及各终点拟合得到的终点线段;
将所述起点线段和终点线段的端点确定为条形码区域的角点。
根据本发明一优选实施例,在所述步骤A2中采用透视变换的方式进行几何校正。
根据本发明一优选实施例,所述步骤S2中根据横向投影值的分布状况定位出字符区域具体包括:
确定横向投影值的低谷值点,将低谷值点以下的区域识别为字符区域。
根据本发明一优选实施例,在所述将横向投影值的低谷值点以下的区域识别为字符区域之前还包括:判断所述低谷值点是否位于存在横向投影值区域的上半部分还是下半部分,如果位于上半部分,则将条形码图像进行上下翻转后,执行所述将横向投影值的低谷值点以下的区域识别为字符区域;如果位于下半部分,则继续执行所述将横向投影值的低谷值点以下的区域识别为字符区域。
根据本发明一优选实施例,所述步骤S3中根据纵向投影值的分布状况定位出各字符具体包括:
将纵向投影值的低谷值点作为各字符的边界点对字符区域进行分割得到各字符。
根据本发明一优选实施例,在所述步骤S4之后还包括:
S5、对所述条形码识别结果采用欧洲物品编码EAN-13校验算法进行校验,如果校验通过,则输出所述条形码识别结果,否则,确定本次条形码识别失败。
一种条形码识别装置,该装置包括:
图像二值化单元,用于对用户终端获取到的条形码图像进行二值化;
字符区域定位单元,用于对二值化后的条形码图像进行横向投影,根据横向投影值的分布状况定位出字符区域;
字符定位单元,用于将字符区域进行纵向投影,根据纵向投影值的分布状况定位出各字符;
文字识别单元,用于对各字符进行文字识别,并将文字识别结果进行组合得到条形码识别结果。
根据本发明一优选实施例,该装置还包括:
条码区域定位单元,用于在用户终端获取到的条形码图像中定位条形码区域,确定条形码区域的角点;
几何校正单元,用于基于条形码区域的角点对条形码图像进行几何校正,得到标准角度的条形码图像;
所述图像二值化单元是对所述标准角度的条形码图像进行的二值化。
根据本发明一优选实施例,所述条码区域定位单元具体包括:
灰度化子单元,用于将用户终端获取到的条形码图像进行灰度化;
边缘检测子单元,用于对灰度化后的条形码图像进行边缘检测得到边缘图像;
线段检测子单元,用于对所述边缘图像进行hough线段检测,确定条形码各线段的端点;
角点确定子单元,用于对各线段进行聚类,利用聚类结果中各线段的端点确定条形码区域的角点。
根据本发明一优选实施例,所述角点确定子单元在进行聚类和角点的确定时,具体从各线段中选取种子线段,将与种子线段的角度和距离在设定范围内的线段进行聚合;利用聚合在一起的各线段的起点和终点分别做直线拟合,得到各起点拟合得到的起点线段以及各终点拟合得到的终点线段;将所述起点线段和终点线段的端点确定为条形码区域的角点。
根据本发明一优选实施例,所述几何校正单元采用透视变换的方式进行几何校正。
根据本发明一优选实施例,所述字符区域定位单元在定位字符区域时,具体确定横向投影值的低谷值点,将低谷值点以下的区域识别为字符区域。
根据本发明一优选实施例,所述字符区域定位单元在将低谷值点以下的区域识别为字符区域之前还包括:判断所述低谷值点是否位于存在横向投影值区域的上半部分还是下半部分,如果位于上半部分,则将条形码图像进行上下翻转后,执行所述将横向投影值的低谷值点以下的区域识别为字符区域;如果位于下半部分,则继续执行所述将横向投影值的低谷值点以下的区域识别为字符区域。
根据本发明一优选实施例,所述字符定位单元在定位各字符时,具体将纵向投影值的低谷值点作为各字符的边界点对字符区域进行分割得到各字符。
根据本发明一优选实施例,该装置还包括:
结果校验单元,用于对所述条形码识别结果采用欧洲物品编码EAN-13校验算法进行校验,如果校验通过,则输出所述条形码识别结果,否则,确定本次条形码识别失败。
由以上技术方案可以看出,本发明将文字识别技术引入条形码的识别,采用识别条形码下方的字符的方式得到条形码的识别结果,而不是通过计算黑白条宽度进行解码的方式,对于拍摄条件有限的用户终端也能够成功识别条形码,提高了识别成功率。
【附图说明】
图1为条形码图像的一个实例图;
图2为本发明实施例一提供的条形码识别方法流程图;
图3为本发明实施例一提供的条形码图像的投影方向示意图;
图4为本发明实施例一提供的字符区域的实例图;
图5为本发明实施例二提供的条形码识别方法流程图;
图6为本发明实施例二提供的定位条形码区域的方法流程图;
图7为本发明实施例三提供的条形码识别装置结构图;
图8为本发明实施例四提供的条形码识别装置结构图;
图9为本发明实施例四提供的条形码区域定位单元的结构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明的主要思路是避开传统的通过计算黑白条宽度进行解码的方法,而是将文字识别技术引入条形码的识别,通过识别条形码下方的字符而直接得到条形码的内容。然而,由于条形码图像的特殊性,对条形码下方的字符进行识别也存在一定难度,下面通过实施例一和实施例二对该识别方法进行详细描述。
实施例一、
图2为本发明实施例一提供的条形码识别方法流程图,如图2所示,该方法可以包括以下步骤:
步骤201:对用户终端获取到的条形码图像进行二值化。
本发明实施例所涉及的用户终端可以包括但不限于:具有拍照或扫描功能的手机、电脑、相机、ipad、扫描仪等。用户终端获取到的条形码图像如图1所示包含条形码和条形码下方的字符,字符包括但不限于数字和字母。
所谓图像的二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果,二值化是图像处理的基本操作,在本步骤中可以采用现有技术中的任意二值化方法,诸如全局二值化方法、局部自适应二值化方法等,在此不做具体限制。
步骤202:对二值化后的条形码图像进行横向投影,根据横向投影值的分布状况定位出字符区域。
所谓横向指的是与条形码的黑白条垂直的方向,所谓纵向指的是与条形码的黑白条平行的方向,如图3中所示。
由于图像进行二值化后,每个像素的值就是1或者0,所谓投影值就是投影点上像素值为1的数目,对于横向投影而言,就是横向一行像素值为1的数目。
依据条形码的结构特点,横向投影值的分布状况为:在出现一段平稳值之后出现一个低谷值,然后投影值又上升。该平稳值是条形码的横向投影,低估值是条形码和字符的分隔处,因此,可以将横向投影值的低谷值点作为字符区域的上边界点,如图3所示,将条形码图像中低谷值点以下的区域识别为字符区域。
由于在实际场景中条形码图像可能出现上下倒置的情况,而条形码区域部分通常比字符区域部分的纵向长度要长,因此,在确定出横向投影值的低谷值点时,判断该低谷值点是否位于存在横向投影值区域的上半部分还是下半部分,如果位于上半部分,则说明条形码图像上下倒置,将条形码图像进行上下翻转后,将条形码图像中低谷值点以下的区域识别为字符区域;如果位于下半部分,则说明直接将条形码图像中低谷值点以下的区域识别为字符区域。
步骤203:将字符区域进行纵向投影,根据纵向投影值的分布状况定位出各字符。
在步骤202之后能够将字符区域分割出来,依据纵向投影值的分布状况定位各字符的方式与依据横向投影值的分布状况定位字符区域的方式类似,即将纵向投影值的低谷值点作为各字符的边界点对字符区域进行分割得到各字符。
需要说明的是,由于在某些情况下字符区域中除了字符之外,还可能存在部分条形码,如图4所示,对于这种情况,部分条形码也被定位为字符,图4所示的字符区域可能会被定位出22个字符,但最终部分条形码在后续文字识别的步骤中无识别结果,仅有真正的字符会被识别出来,所以不会影响最终的识别结果。
步骤204:对各字符进行文字识别,并将文字识别结果进行组合得到条形码识别结果。
分割成各字符区域后,分别对各字符区域进行文字识别,优选地,在文字识别之前首先将单个字符区域归一化到统一的尺寸。
文字识别的方式包括模板匹配法和几何特征抽取法。由于条形码下的字符通常为数字或字母,是有限的可以穷举的类型,因此可以采用模板匹配法,将待识别的字符与预先给定的各模板进行匹配,计算待识别的字符与各模板之间的相似度,取相似度最大的模板对应的内容(数字或字母)作为识别结果。当然,也可以采用几何特征抽取法,模板匹配法和几何特征抽取法为已有技术,在此不再详述。
得到条形码识别结果之后,可以进一步采用欧洲物品编码(EAN-13)进行校验,如果校验通过,则输出该条形码识别结果;如果校验失败,则本次条形码识别失败。
由于EAN-13条形码中存在校正码,通常其代码位置序号为1,在采用EAN-13进行校验时,一方面校验条形码识别结果是否为13位字符,一方面将除了校正码所在位置对应字符之外的其他字符按照EAN-13校验算法进行计算后,将计算结果与校正码所在位置对应的字符进行比对,如果一致,则确定校验通过。
EAN-13校正算法的实现举一个例子:
a、从条形码识别结果中第二位字符开始,所有偶数位的字符代码求和。
b、将步骤a的求和结果乘以3。
c、从第三位字符开始,所有奇数位的字符代码求和。
d、将步骤b的结果与步骤c的结果相加。
e、用大于或等于步骤d所得结果且为10最小整数倍的数减去步骤d所得的结果。
f、将步骤e所得结果与条形码识别结果中第一位字符进行比对,如果一致,则校验通过。
实施例二、
本实施例与实施例一的区别在于,预先对条形码图像执行几何校正的过程,防止在用户终端获取条形码图像时,由于终端拍摄条件限制、或者用户拍摄距离、拍摄角度等因素导致的条形码图像发生倾斜或畸变而导致条形码识别失败。图5为本发明实施例二提供的条形码识别方法流程图,如图5所示,该方法可以包括以下步骤:
步骤501:在用户终端获取到的条形码图像中定位条形码区域,确定条形码区域的角点。
本步骤的实现可以如图6所示,具体包括:
步骤601:将用户终端获取到的条形码图像进行灰度化。
步骤602:对灰度化后的条形码图像进行边缘检测得到边缘图像。
在本步骤中可以采用已有的任意边缘检测方法,例如canny算子边缘检测、RobersCross算子边缘检测、Prewitt算子边缘检测等等。
步骤603:对边缘图像进行hough线段检测,确定条形码各线段的端点。
hough线段检测为已有技术,通过hough线段检测能够确定图像中线段的端点,即线段的起点和终点。
步骤604:对各线段进行聚类,利用聚类结果中各线段的端点确定条形码区域的角点。
可以对各线段进行聚类确定线段较密集的区域,具体可以为:选取一条种子线段,将与种子线段的角度和距离在设定范围内的线段进行聚合。然后利用聚合在一起的各线段的起点和终点分别做直线拟合,例如最小二乘法的直线拟合,这样就可以得到各线段的起点拟合到的线段,称为起点线段,以及各线段的终点拟合到的线段,称为终点线段。起点线段和终点线段的4个端点就是条形码区域的角点。所谓角点就是条形码区域的边界顶点。
继续参见图5中的步骤502:基于条形码区域的角点对条形码图像进行几何校正,得到标准角度的条形码图像。
在本步骤中,基于条形码区域的4个焦点可以采用透视变换的方式进行几何校正。透视变换的原理是,用户终端获取到的图像中的各点是实际三维空间物体的一点(x,y,1)经过透视变换到二维平面点(x’,y’,1)而生成的,透视变换公式为:
其中
为变换矩阵,首先将条形码区域的角点坐标映射到图像的基准位置坐标作为(x’,y’,1),(x,y,1)取指定值即指定的标准坐标,可以解出变换矩阵,对其求逆可得到校正矩阵。
然后利用校正矩阵对条形码图像进行几何校正,即将条形码图像中各像素的坐标点均乘以校正矩阵,得到标准角度的条形码图像。
需要说明的是,如果采用的角点个数为其他值,比如3个,则可以采用其他几何校正方式对条形码图像进行几何校正,得到标准角度的条形码图像,在此不再一一穷举。
步骤503至步骤506依次与实施例一中步骤201至步骤204相同,不再赘述。
以上是对本发明所提供的方法进行的详细描述,下面结合实施例三和实施例四对本发明所提供的装置进行详细描述。
实施例三、
图7为本发明实施例三提供的条形码识别装置结构图,该装置可以设置在能够获取条形码图像的用户终端中,该用户终端可以包括但不限于:具有拍照或扫描功能的手机、电脑、相机、ipad、扫描仪等,该装置也可以为独立于用户终端的装置。如图7所示,该装置包括:图像二值化单元700、字符区域定位单元710、字符定位单元720和文字识别单元730。
首先,图像二值化单元700对用户终端获取到的条形码图像进行二值化。可以采用诸如全局二值化方法、局部自适应二值化方法等任意二值化方式。
字符区域定位单元710对二值化后的条形码图像进行横向投影,根据横向投影值的分布状况定位出字符区域。所谓投影值就是投影点上像素值为1的数目,对于横向投影而言,就是横向上一行像素值为1的数目。依据条形码的结构特点,横向投影值的分布状况为:在出现一段平稳值之后出现一个低谷值,然后投影值又上升。该平稳值是条形码的横向投影,低估值是条形码和字符的分隔处,因此,可以将横向投影值的低谷值点作为字符区域的上边界点,即首先确定横向投影值的低谷值点,将低谷值点以下的区域识别为字符区域。
由于在实际场景中条形码图像可能出现上下倒置的情况,而条形码区域部分通常比字符区域部分的纵向长度要长,因此,字符区域定位单元720在将低谷值点以下的区域识别为字符区域之前还包括:判断低谷值点是否位于存在横向投影值区域的上半部分还是下半部分,如果位于上半部分,则说明条形码图像上下倒置,将条形码图像进行上下翻转后,执行将横向投影值的低谷值点以下的区域识别为字符区域;如果位于下半部分,则继续执行将横向投影值的低谷值点以下的区域识别为字符区域。
然后字符定位单元720将字符区域进行纵向投影,根据纵向投影值的分布状况定位出各字符。具体地,将纵向投影值的低谷值点作为各字符的边界点对字符区域进行分割得到各字符。
需要说明的是,由于在某些情况下字符区域中除了字符之外,还可能存在部分条形码,如图4所示,对于这种情况,部分条形码也被定位为字符,图4所示的字符区域可能会被定位出22个字符,但最终部分条形码在后续文字识别单元730的操作中无识别结果,仅有真正的字符会被识别出来,所以不会影响最终的识别结果。
文字识别单元730对各字符进行文字识别,并将文字识别结果进行组合得到条形码识别结果。
文字识别的方式包括模板匹配法和几何特征抽取法。由于条形码下的字符通常为数字或字母,是有限的可以穷举的类型,因此可以采用模板匹配法,将待识别的字符与预先给定的各模板进行匹配,计算待识别的字符与各模板之间的相似度,取相似度最大的模板对应的内容(数字或字母)作为识别结果。当然,也可以采用几何特征抽取法,模板匹配法和几何特征抽取法为已有技术,在此不再详述。
优选地,该装置还可以包括:结果校验单元740,用于对条形码识别结果采用EAN-13校验算法进行校验,如果校验通过,则输出条形码识别结果,否则,确定本次条形码识别失败。
由于EAN-13条形码中存在校正码,通常其代码位置序号为1,在采用EAN-13进行校验时,一方面校验条形码识别结果是否为13位字符,一方面将除了校正码所在位置对应字符之外的其他字符按照EAN-13校验算法进行计算后,将计算结果与校正码所在位置对应的字符进行比对,如果一致,则确定校验通过。
实施例四、
本实施例与实施例三的区别在于,该装置还包括条码区域定位单元800和几何校正单元810预先对条形码图像进行几何校正,防止在用户终端获取条形码图像时,由于终端拍摄条件限制或者用户拍摄距离、拍摄角度等因素导致的条形码图像发生倾斜或畸变而导致条形码识别失败,此时装置结构如图8所示。
条码区域定位单元800在用户终端获取到的条形码图像中定位条形码区域,确定条形码区域的角点。
几何校正单元810基于条形码区域的角点对条形码图像进行几何校正,得到标准角度的条形码图像。具体可以采用透视变换的方式进行几何校正,也可以采用其他校正方式。
该结构下图像二值化单元700是对标准角度的条形码图像进行的二值化。
其中,条码区域定位单元800的结构可以如图9所示,具体包括:灰度化子单元801、边缘检测子单元802、线段检测子单元803和角点确定子单元804。
首先灰度化子单元801将用户终端获取到的条形码图像进行灰度化。
然后边缘检测子单元802对灰度化后的条形码图像进行边缘检测得到边缘图像。具体可以采用已有的任意边缘检测方法,例如canny算子边缘检测、RobersCross算子边缘检测、Prewitt算子边缘检测等等。
线段检测子单元803对边缘图像进行hough线段检测,确定条形码各线段的端点。hough线段检测为已有技术,通过hough线段检测能够确定图像中线段的端点,即线段的起点和终点。
角点确定子单元804对各线段进行聚类,利用聚类结果中各线段的端点确定条形码区域的角点。可以对各线段进行聚类确定线段较密集的区域,具体可以为:从各线段中选取种子线段,将与种子线段的角度和距离在设定范围内的线段进行聚合;利用聚合在一起的各线段的起点和终点分别做直线拟合,得到各起点拟合得到的起点线段以及各终点拟合得到的终点线段;将起点线段和终点线段的端点确定为条形码区域的角点。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (15)
1.一种条形码识别方法,其特征在于,该方法包括:
A1、将用户终端获取到的条形码图像进行灰度化,对灰度化后的条形码图像进行边缘检测得到边缘图像,对所述边缘图像进行hough线段检测,确定条形码各线段的端点,对各线段进行聚类,利用聚类结果中各线段的端点确定条形码区域的角点;
A2、基于条形码区域的角点对条形码图像进行几何校正,得到标准角度的条形码图像;
S1、对A2得到的条形码图像进行二值化;
S2、对二值化后的条形码图像进行横向投影,根据横向投影值的分布状况定位出字符区域;
S3、将字符区域进行纵向投影,根据纵向投影值的分布状况定位出各字符;
S4、对各字符进行文字识别,并将文字识别结果进行组合得到条形码识别结果。
2.根据权利要求1所述的方法,其特征在于,所述对各线段进行聚类,利用聚类结果中各线段的端点确定条形码区域的角点具体包括:
从各线段中选取种子线段,将与种子线段的角度和距离在设定范围内的线段进行聚合;
利用聚合在一起的各线段的起点和终点分别做直线拟合,得到各起点拟合得到的起点线段以及各终点拟合得到的终点线段;
将所述起点线段和终点线段的端点确定为条形码区域的角点。
3.根据权利要求1所述的方法,其特征在于,在所述步骤A2中采用透视变换的方式进行几何校正。
4.根据权利要求1至3任一权项所述的方法,其特征在于,所述步骤S2中根据横向投影值的分布状况定位出字符区域具体包括:
确定横向投影值的低谷值点,将低谷值点以下的区域识别为字符区域。
5.根据权利要求4所述的方法,其特征在于,在所述将横向投影值的低谷值点以下的区域识别为字符区域之前还包括:判断所述低谷值点是否位于存在横向投影值区域的上半部分还是下半部分,如果位于上半部分,则将条形码图像进行上下翻转后,执行所述将横向投影值的低谷值点以下的区域识别为字符区域;如果位于下半部分,则继续执行所述将横向投影值的低谷值点以下的区域识别为字符区域。
6.根据权利要求1至3任一权项所述的方法,其特征在于,所述步骤S3中根据纵向投影值的分布状况定位出各字符具体包括:
将纵向投影值的低谷值点作为各字符的边界点对字符区域进行分割得到各字符。
7.根据权利要求1至3任一权项所述的方法,其特征在于,在所述步骤S4之后还包括:
S5、对所述条形码识别结果采用欧洲物品编码EAN-13校验算法进行校验,如果校验通过,则输出所述条形码识别结果,否则,确定本次条形码识别失败。
8.一种条形码识别装置,其特征在于,该装置包括:
条码区域定位单元,用于将用户终端获取到的条形码图像进行灰度化,对灰度化后的条形码图像进行边缘检测得到边缘图像,对所述边缘图像进行hough线段检测,确定条形码各线段的端点,对各线段进行聚类,利用聚类结果中各线段的端点确定条形码区域的角点;
几何校正单元,用于基于条形码区域的角点对条形码图像进行几何校正,得到标准角度的条形码图像;
图像二值化单元,用于对所述几何校正单元得到的条形码图像进行二值化;
字符区域定位单元,用于对二值化后的条形码图像进行横向投影,根据横向投影值的分布状况定位出字符区域;
字符定位单元,用于将字符区域进行纵向投影,根据纵向投影值的分布状况定位出各字符;
文字识别单元,用于对各字符进行文字识别,并将文字识别结果进行组合得到条形码识别结果。
9.根据权利要求8所述的装置,其特征在于,所述条码区域定位单元具体包括:
灰度化子单元,用于将用户终端获取到的条形码图像进行灰度化;
边缘检测子单元,用于对灰度化后的条形码图像进行边缘检测得到边缘图像;
线段检测子单元,用于对所述边缘图像进行hough线段检测,确定条形码各线段的端点;
角点确定子单元,用于对各线段进行聚类,利用聚类结果中各线段的端点确定条形码区域的角点。
10.根据权利要求9所述的装置,其特征在于,所述角点确定子单元在进行聚类和角点的确定时,具体从各线段中选取种子线段,将与种子线段的角度和距离在设定范围内的线段进行聚合;利用聚合在一起的各线段的起点和终点分别做直线拟合,得到各起点拟合得到的起点线段以及各终点拟合得到的终点线段;将所述起点线段和终点线段的端点确定为条形码区域的角点。
11.根据权利要求8所述的装置,其特征在于,所述几何校正单元采用透视变换的方式进行几何校正。
12.根据权利要求8至11任一权项所述的装置,其特征在于,所述字符区域定位单元在定位字符区域时,具体确定横向投影值的低谷值点,将低谷值点以下的区域识别为字符区域。
13.根据权利要求12所述的装置,其特征在于,所述字符区域定位单元在将低谷值点以下的区域识别为字符区域之前还包括:判断所述低谷值点是否位于存在横向投影值区域的上半部分还是下半部分,如果位于上半部分,则将条形码图像进行上下翻转后,执行所述将横向投影值的低谷值点以下的区域识别为字符区域;如果位于下半部分,则继续执行所述将横向投影值的低谷值点以下的区域识别为字符区域。
14.根据权利要求8至11任一权项所述的装置,其特征在于,所述字符定位单元在定位各字符时,具体将纵向投影值的低谷值点作为各字符的边界点对字符区域进行分割得到各字符。
15.根据权利要求8至11任一权项所述的装置,其特征在于,该装置还包括:
结果校验单元,用于对所述条形码识别结果采用欧洲物品编码EAN-13校验算法进行校验,如果校验通过,则输出所述条形码识别结果,否则,确定本次条形码识别失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210227196.9A CN102799850B (zh) | 2012-06-30 | 2012-06-30 | 一种条形码识别方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210227196.9A CN102799850B (zh) | 2012-06-30 | 2012-06-30 | 一种条形码识别方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102799850A CN102799850A (zh) | 2012-11-28 |
CN102799850B true CN102799850B (zh) | 2016-03-30 |
Family
ID=47198951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210227196.9A Active CN102799850B (zh) | 2012-06-30 | 2012-06-30 | 一种条形码识别方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102799850B (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336938B (zh) * | 2013-06-05 | 2016-04-13 | 华南理工大学 | 一种基于一维条形码图像的识别方法 |
CN103593695B (zh) * | 2013-11-15 | 2016-08-10 | 天津大学 | 一种dpm二维码区域定位的方法 |
CN103927765B (zh) * | 2014-02-21 | 2016-10-12 | 北京象开科技有限公司 | 用于定位图像中条码区域的方法和装置 |
CN104933068A (zh) * | 2014-03-19 | 2015-09-23 | 阿里巴巴集团控股有限公司 | 一种信息搜索的方法和装置 |
CN104392238B (zh) * | 2014-09-29 | 2018-11-27 | 南京火眼猴信息科技有限公司 | 含多类型标识的信息载体的识别方法 |
CN104463066B (zh) * | 2014-12-03 | 2017-05-10 | 上海电机学院 | 一种商品外包装一维条形码快速定位识别方法 |
CN104794420A (zh) * | 2015-04-27 | 2015-07-22 | 江苏中科贯微自动化科技有限公司 | 面向工业自动化生产的code128码自动识别方法 |
CN106355743A (zh) * | 2015-07-14 | 2017-01-25 | 深圳怡化电脑股份有限公司 | 纸币的版本识别方法及装置 |
CN106548107B (zh) * | 2015-09-23 | 2019-03-22 | 株式会社理光 | 条形码定位装置和条形码定位方法、以及条形码读取装置和条形码读取方法 |
CN106910196B (zh) * | 2015-12-23 | 2021-01-29 | 北京奇虎科技有限公司 | 一种图像检测方法及装置 |
CN106446750B (zh) * | 2016-07-07 | 2018-09-14 | 深圳市华汉伟业科技有限公司 | 一种条形码读取方法及装置 |
CN106779537A (zh) * | 2016-11-30 | 2017-05-31 | 苏州金峰物流设备有限公司 | 中转场包裹卸车条码识别方法 |
CN108256608A (zh) * | 2017-03-15 | 2018-07-06 | 新华智云科技有限公司 | 一种二维图像码及其识别方法和设备 |
CN107301366B (zh) * | 2017-05-12 | 2020-07-31 | 赵毅 | 一种嵌码视频中图形码的解码方法及装置 |
CN107358138B (zh) * | 2017-06-07 | 2020-03-24 | 广东正业科技股份有限公司 | 非线性畸变ean条码的校正方法、移动终端及存储装置 |
CN107633192B (zh) * | 2017-08-22 | 2020-05-26 | 电子科技大学 | 一种基于机器视觉的复杂背景下条形码分割与识读方法 |
CN108304839B (zh) * | 2017-08-31 | 2021-12-17 | 腾讯科技(深圳)有限公司 | 一种图像数据处理方法以及装置 |
CN107729789A (zh) * | 2017-09-04 | 2018-02-23 | 华南理工大学 | 一种基于差异背景颜色的快递单制作与条形码定位识别方法 |
CN107766862A (zh) * | 2017-10-19 | 2018-03-06 | 成都博智维讯信息技术股份有限公司 | 商品价格标签数字识别方法 |
CN108009455B (zh) * | 2017-11-07 | 2019-04-30 | 深圳市华汉伟业科技有限公司 | 一种条形码的扫描信号的解码方法及装置 |
US11182759B2 (en) | 2019-04-15 | 2021-11-23 | Advanced New Technologies Co., Ltd. | Self-service checkout counter |
CN110264645A (zh) * | 2019-04-16 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 一种商品的自助收银方法和设备 |
US11113680B2 (en) | 2019-04-16 | 2021-09-07 | Advanced New Technologies Co., Ltd. | Self-service checkout counter checkout |
CN110245536B (zh) * | 2019-05-09 | 2024-02-27 | 深圳盈达信息科技有限公司 | 条码识别方法 |
CN111126384A (zh) * | 2019-12-12 | 2020-05-08 | 创新奇智(青岛)科技有限公司 | 基于特征融合的商品分类系统及分类方法 |
CN111354018B (zh) * | 2020-03-06 | 2023-07-21 | 合肥维尔慧渤科技有限公司 | 一种基于图像的物体识别方法、装置及系统 |
CN111368574A (zh) * | 2020-03-06 | 2020-07-03 | 联想(北京)有限公司 | 一种条形码识别方法及装置 |
CN112260872B (zh) * | 2020-10-22 | 2022-03-04 | 北京理工大学 | 一种基于字符串匹配的标识异构识别方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848136A (zh) * | 2005-04-13 | 2006-10-18 | 摩托罗拉公司 | 对条形码图像解码的方法和系统 |
CN101059834A (zh) * | 2007-05-31 | 2007-10-24 | 中国农业大学 | 基于聊天用摄像头的qr二维条码识读方法 |
CN101334837A (zh) * | 2008-07-31 | 2008-12-31 | 重庆大学 | 一种多方法融合的车牌图像定位方法 |
CN101937508A (zh) * | 2010-09-30 | 2011-01-05 | 湖南大学 | 一种基于高清图像的车牌定位与识别方法 |
-
2012
- 2012-06-30 CN CN201210227196.9A patent/CN102799850B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848136A (zh) * | 2005-04-13 | 2006-10-18 | 摩托罗拉公司 | 对条形码图像解码的方法和系统 |
CN101059834A (zh) * | 2007-05-31 | 2007-10-24 | 中国农业大学 | 基于聊天用摄像头的qr二维条码识读方法 |
CN101334837A (zh) * | 2008-07-31 | 2008-12-31 | 重庆大学 | 一种多方法融合的车牌图像定位方法 |
CN101937508A (zh) * | 2010-09-30 | 2011-01-05 | 湖南大学 | 一种基于高清图像的车牌定位与识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102799850A (zh) | 2012-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102799850B (zh) | 一种条形码识别方法和装置 | |
US11818303B2 (en) | Content-based object detection, 3D reconstruction, and data extraction from digital images | |
US11349666B2 (en) | Electronically signing and distributing identification data as a service that provides proof of identity, integrity, validity and origin of data for non-repudiation and ID validation methods | |
US11620733B2 (en) | Content-based object detection, 3D reconstruction, and data extraction from digital images | |
CN109657665B (zh) | 一种基于深度学习的发票批量自动识别系统 | |
CN110659647B (zh) | 印章图像识别方法及装置、智能发票识别设备和存储介质 | |
US11755867B2 (en) | Composite code pattern, generating device, reading device, method, and program | |
US9799119B2 (en) | Detecting specified image identifiers on objects | |
CN108291876B (zh) | 用于检测产品的真实性的系统及方法 | |
CN112651289B (zh) | 一种增值税普通发票智能识别与校验系统及其方法 | |
CN109657673B (zh) | 图像识别方法和终端 | |
CA2963113A1 (en) | Storing identification data as virtual personally identifiable information | |
CN103839058A (zh) | 一种基于标准模版的文档图像的信息定位方法 | |
US20170200247A1 (en) | Systems and methods for authentication of physical features on identification documents | |
CN108288012A (zh) | 一种基于手机实现的艺术品备案验证方法及其系统 | |
JP2015522861A (ja) | マトリックス型2次元コードの復号化方法 | |
CN114359553B (zh) | 一种基于物联网的签章定位方法、系统及存储介质 | |
CN110647956A (zh) | 一种联合二维码识别的发票信息提取方法 | |
CN103336938A (zh) | 一种基于一维条形码图像的识别方法 | |
CN113158895A (zh) | 票据识别方法、装置、电子设备及存储介质 | |
CN111553251A (zh) | 证件四角残缺检测方法、装置、设备及存储介质 | |
CN113673519A (zh) | 基于文字检测模型的文字识别方法及其相关设备 | |
CN105184294B (zh) | 一种基于像素追踪的倾斜文字判断识别方法 | |
CN113221897B (zh) | 图像矫正方法、图像文本识别方法、身份验证方法及装置 | |
CN113111880A (zh) | 证件图像校正方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |