CN106446750B - 一种条形码读取方法及装置 - Google Patents
一种条形码读取方法及装置 Download PDFInfo
- Publication number
- CN106446750B CN106446750B CN201610857241.7A CN201610857241A CN106446750B CN 106446750 B CN106446750 B CN 106446750B CN 201610857241 A CN201610857241 A CN 201610857241A CN 106446750 B CN106446750 B CN 106446750B
- Authority
- CN
- China
- Prior art keywords
- region
- bar code
- score
- unit
- image
- 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
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000003709 image segmentation Methods 0.000 claims abstract description 11
- 239000003550 marker Substances 0.000 claims abstract description 8
- 230000000877 morphologic effect Effects 0.000 claims description 15
- 238000012937 correction Methods 0.000 claims description 11
- 238000013316 zoning Methods 0.000 claims description 11
- 230000011218 segmentation Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000007797 corrosion Effects 0.000 claims description 6
- 238000005260 corrosion Methods 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 5
- 230000009182 swimming Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 19
- 230000000875 corresponding effect Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 10
- 238000004458 analytical method Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241001270131 Agaricus moelleri Species 0.000 description 1
- 241000196324 Embryophyta Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 238000009333 weeding Methods 0.000 description 1
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/1413—1D 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
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)
- Character Discrimination (AREA)
Abstract
本申请公开了一种条形码读取方法及装置,所述方法包括图像获取步骤;条形码定位步骤,从获取的图像中定位出条形码,具体地,包括:将获取的图像分割成若干互不重叠的区域;对于每一区域,计算此区域的特征得分,并判断此区域的特征得分是否大于一特征得分阈值Tconfidence,若大于,则将此区域标记为有用,反之,则舍弃此区域;其中,计算任何一区域的特征得分时,该区域的特征得分等于此区域的符号对比度百分比得分、灰度直方图峰差得分、边缘角度直方图峰差得分和边缘角度直方图峰谷面积得分相加之和;对各被标记为有用的区域进行区域合并,得到若干个合并后的条形码区域;条形码识别步骤,分别对各条形码区域进行解码,以得到各条形码所代表的信息。
Description
技术领域
本申请涉及一种条形码读取方法及装置。
背景技术
目前对条形码进行读取的装置主要是条形码扫描仪,通过人工操作将激光扫描器对准和靠近条形码,对其进行条形码扫描输入和识别。但如果条形码印刷质量不合格或者在运输过程中存在断裂或污染,将严重影响条形码识别的正确性。在这种情况下,基于图像处理来读取条形码的技术更具有优势。
首先,激光扫描仪只使用一束激光对图像进行扫描,如果条形码的某些部位出现污点,则可能出现错误,而采用图像处理技术,可以利用整个条形码区域的信息,不会因为局部损失造成差错。
其次,图像中每个像素点之间有很强的相关性,各个像素之间不是独立的,因此基于图像处理来读取条形码可以利用这种相关性,而上述用激光扫描条形码识别技术则无法使用这种相关性。
再次,基于图像处理技术进行识别,一次可以识别多个条形码,更具有智能性,每激光扫描条形码,需要人工将扫描器对准和靠近条形码,来依次一个一个地去读取条形码。
因此基于图像处理的条形码自动识别技术在近些年成为研究热点。该技术与普通的基于激光枪扫描的条形码识别技术有所不同,其关键区别在于,基于激光枪扫描的条形码识别技术是由操作人员找到条形码的位置并将其放在激光枪前方使其具有足够高的分辨率,在此条件下进行扫描输入和识别,而基于图像处理的条形码自动识别技术需要从复杂的图像背景中自动搜索检测并提取条形码图像,然后对条形码进行识别,不需要人工操作。因此,基于图像处理的条形码自动识别技术,主要的技术难点之一在于如何在复杂背景中定位出条形码区域。
发明内容
为解决上述问题,本申请提供一种条形码读取方法及装置。
根据本申请的第一方面,本申请提供一种条形码读取方法,包括:
图像获取步骤,获取包含条形码的图像;
条形码定位步骤,从获取的图像中定位出条形码,具体地,包括:
将获取的图像分割成若干互不重叠的区域;
对于每一区域,计算此区域的特征得分,并判断此区域的特征得分是否大于一特征得分阈值Tconfidence,若大于,则将此区域标记为有用,反之,则舍弃此区域;其中,计算任何一区域的特征得分时,该区域的特征得分等于此区域的符号对比度百分比得分、灰度直方图峰差得分、边缘角度直方图峰差得分和边缘角度直方图峰谷面积得分相加之和;
对各被标记为有用的区域进行区域合并,得到若干个合并后的条形码区域;
条形码识别步骤,分别对各条形码区域进行解码,以得到各条形码所代表的信息。
在一较优实施例中,在条形码识别步骤中,对区域进行解码之前,先将此区域进行投影,根据区域的投影进行解码。
根据本申请的第二方面,本申请提供一种条形码读取装置,包括:
图像获取部件,用于获取包含条形码的图像;
条形码定位部件,用于从获取的图像中定位出条形码,具体地,包括:
分割单元,用于将获取的图像分割成若干互不重叠的区域;
特征得分计算单元,用于对于每一区域,计算此区域的特征得分;其中,特征得分计算单元包括:
第一计算子单元,用于计算此区域的符号对比度百分比得分;
第二计算子单元,用于计算此区域的灰度直方图峰差得分;
第三计算子单元,用于计算此区域的边缘角度直方图峰差得分;
第四计算子单元,用于计算此区域的边缘角度直方图峰谷面积得分;
加法子单元,用于将所述第一计算单元子单元、第二计算子单元、第三计算子单元和第四计算子单元计算的得分相加,以得到该区域的特征得分;
特征得分判断单元,用于判断此区域的特征得分是否大于一特征得分阈值Tconfidence;
标记单元,用于当特征得分判断单元判断此区域的特征得分大于所述特征得分阈值Tconfidence时,将此区域标记为有用;
舍弃单元,用于当特征得分判断单元判断此区域的特征得分不大于所述特征得分阈值Tconfidence时,舍弃此区域;
区域合并单元,用于对各被标记为有用的区域进行区域合并,得到若干个合并后的条形码区域;
条形码识别部件,用于分别对各条形码区域进行解码,以得到各条形码所代表的信息。
在一较优的实施例中,所述条形码识别部件还包括投影单元,用于对区域进行解码之前,先将此区域进行投影,条形码识别部件再根据此区域的投影进行解码。
本申请的有益效果是:
依上述实施例的条形码读取方法及装置,在对条形码定位时,计算任何一区域的特征得分时,该区域的特征得分等于此区域的符号对比度百分比得分、灰度直方图峰差得分、边缘角度直方图峰差得分和边缘角度直方图峰谷面积得分相加之和;由于引入这四项得分来评价某一区域是否包含条形码,从而可以在复杂的背景中将条形码精确地定位出来,提高条形码定位的稳定性及准确性;
依上述实施例的条形码读取方法及装置,由于在条形码识别步骤中,对区域进行解码之前,先将此区域进行投影,根据区域的投影进行解码,从而对于印刷质量不佳的条形码,或受污损的条形码也能进行解码,增加解码的鲁棒性。
附图说明
图1为条形码的一个示意图;
图2为本申请一种实施例的条形码读取方法的流程示意图;
图3为本申请一种实施例的条形码读取方法中图像获取步骤的流程示意图;
图4为本申请一种实施例的条形码读取方法中条形码定位步骤的流程示意图;
图5为本申请一种实施例的条形码读取方法中将获取的图像分割成若干互不重叠的区域的示意图;
图6为本申请一种实施例的角度直方图的示意图;
图7为本申请一种实施例的条形码读取方法中进行区域合并时,在进行完游程标记后可能出现的情况的示意图;
图8为对图7进行等价合并后的结果示意图;
图9为本申请一种实施例的条形码读取方法中进行区域合并的流程示意图;
图10(a)和(b)分别为本申请一种实施例中分割后的示意图与其对应的标记图示意图;
图11为本申请一种实施例的条形码读取方法中获取条形码的精确位置的流程示意图;
图12为本申请一种实施例的条形码读取方法中条形码识别步骤的流程示意图;
图13(a)和(b)分别为在获取条形码的精确位置后,确定区域的中心坐标的示意图和把区域进行旋转后的示意图;
图14为本申请一种实施例的条形码读取装置的结构示意图;
图15为本申请一种实施例的条形码读取装置中的条形码定位部件的结构示意图;
图16为本申请一种实施例的特征得分计算单元的结构示意图;
图17为本申请一种实施例的条形码读取装置中的条形码识别部件的结构示意图。
具体实施方式
对商品包装等拍照获得输入图像,然后将图像中的条形码定位出来,最后对定位出的条形码进行解码识别。在这其中,有两个关键性的问题:
一是如何在复杂背景中搜索定位出条形码区域。条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。所以条形码可以位于商品包括、图书、邮件包裹等许多不同物品上,即使是同类物品,其外包装也各异,这就造成条形码所处的背景复杂,同时,由于条形码在各个物品所处的位置也很可能不同,又进一步对条形码的定位提出挑战。
二是对定位出的条形码进行解码识别。由于物品本身形状可能存在一些凹凸不平,若条形码区域恰好位于此区域,则获取的图像中条形码就会畸变;再如,很多条形码的印刷存在质量问题,或物品在运输过程中造成印刷的条形码受污受损等;再如拍摄条形码图片时拍摄的图片存在畸变,上述这些情况都造成对条形码进行解码时出现错误甚至不能解码。
发明人针对上述两个关键问题做出了研究,为了更好地说明本申请,先对现有做法进行一个简介。
对于问题一,即如何在复杂背景中搜索定位出条形码区域,国内外对条形码定位算法进行了一些研究,主要包括以下四种技术:
(1)基于机器学习技术的条码定位。该方法主要是利用条形码的几何特点进行训练,然后进行条码定位,该方法缺点之一为需要海量的样本图像。另外,由于条形码种类众多,因此其无法适应不同种类的条形码同时定位。
(2)基于图像频域信息的条形码定位。该方法在获取图像的高频子图像中,利用纹理的相似性来进行条形码定位。因为条形码区域是黑白相间的,所述高频特征显著,此方案中典型例如,基于Gabor小波纹理分析的条码检测,在条形码区域其在某一方向上具有较高的小波系数,而在其他方向上小波系数较小。
(3)基于图像空域的纹理特征及形状特征进行定位。该方法利用图像的梯度特征进行条码检测,首先按梯度方向将图像分为4个梯度图像,然后选取梯度值较大的区域进行合并,再通过几何特征选取符合条形码特征的区域。
(4)基于形态学的条形码定位。该方法首先利用边缘提取方法获取边缘信息,然后利用数学形态的膨胀运算对边缘图像进行膨胀,并尽可能地将条形码区域膨胀为4连通或者8连通的区域,最后利用条形码区域的形状特征确定出条形码区域。由于此方法膨胀迭代的次数难以确定,因此在复杂场景中很难满足要求。
以上四类方法,在复杂背景中都很难精确定位到条形码区域,并且定位的鲁棒性很难保证。
对于问题二,即对定位出的条形码进行解码识别。现有技术并未对这种情况做处理,因此常常出现解码出错。
综上,本申请主要解决两个关键性问题:
(1)在复杂背景中,精确获得条形码的位置,提高条形码定位的稳定性及准确性;
(2)提高条形码的解码能力,能自动进行畸变校正,解决柱状等表面无法解码的问题。
下面对本申请的发明构思做一个简要说明。
对条形码读取,主要分三步,第一步是获取图像;第二步是对图像中的条形码进行定位;第三步是对定位出的条形码进行解码识别。
硬件方面:
在获取图像中,这一部分的硬件主要包括相机,相机拍照以获取图像信息,在一实施例中,还可以包括拍照用光源,以提高获取图像的前景对比度。获取图像信息之后可以通过有线(如网线连接、USB数据线等)或无线的方式将图像传给相应的图像处理系统例如电脑等以进行条形码定位和识别。相关硬件还可以包括输入设备例如键盘和鼠标等,用于用户设置一些参数,以适应场景的需求。相关硬件还可以包括输出设备例如显示屏等,以便用户观看处理结果。
算法方面:
条形码是一维码,其是由宽度不同、反射率不同的条(黑色)和空(白色)按照一定的编码规则编制而成的图形标识符,用于表达一组数字、一组字母或者一组数字和字母混合而成的符号信息。图1为条形码的一个例子。发明人对各类条形码研究后发现,条形码的图像具有如下特征:
(1)几何形状:条形码区域反映在图像中是矩形或近似矩形;
(2)梯度幅值信息:由于边缘的梯度值较大,若为条码区域,其边缘大于某一阈值;
(3)梯度方向信息:条码区域的梯度方向的主方向是相互平行的,两者之差接近180度;
(4)直方图特征:条形码区域是由对比度较高的两种颜色(黑和白)组成,所以原始灰度化之后的图像中,如果一个区域是条形码区域,那么它的对比度是最高的,即其灰度直方图应该具有两个明显的波峰,并且两个波峰距离较远。
在复杂背景中对条形码进行定位,可以考虑上述特征。本申请先将图像分割成若干区域,再对每一区域,基于提取上述提取的特征信息,计算该区域的隶属度,根据定制的决策树逐步判断该区域是否属于条形码区域,之后通过连通性分析或区域增长获取区域的特性,来将若干满足8连通或4连通的区域进行区域合并,之后,获取区域的拓扑信息参量,如面积、长度、宽度、方向等,然后根据阈值进行区域筛选,获得候选区域。以上是关于在复杂背景中对条形码的定位算法思路。在定位出条形码后,本申请再对定位出的条形码区域进行旋转、畸变校正,之后再对条形码区域,做垂直投影,统计其灰度的和之后求平均值,对形成的投影图进行高斯滤波,去除微小波动及噪声,检测边缘并统计边缘距离并将其标记为不同的等级,然后进行解码,这可以有效地解决条形码印刷质量较差或被污损等情况,提高了解码的鲁棒性。
下面通过具体实施方式结合附图对本申请作进一步详细说明。
本申请提出了一种条形码读取方法,如图2所示,其包括图像获取步骤S100、条形码定位步骤S300和条形码识别步骤S500,下面分别说明。
图像获取步骤S100、用于获取包含条形码的图像。在一实施例中,如图3所示,图像获取步骤S100包括步骤S101~S111。
步骤S101、初始化相机的基本参数。
步骤S103、连接相机与相应的控制处理系统,例如上述的电脑等。
步骤S105,根据触发信号判断是否拍摄图像,若触发信号为真,则进行步骤S107,否则进行步骤S113。
步骤S107、启动相机进行拍摄。
步骤S109、将相机拍摄的图像传输给相应的控制处理系统,例如步骤S103中举例的电脑等。
步骤S111、控制处理系统判断是否继续拍摄,若继续拍摄,则重新从步骤S105开始进行,若不继续拍摄,则结束图像采集过程。
条形码定位步骤S300、从图像获取步骤S100获取的图像中定位出条形码。在一具体实施例中,如图4所示,条形码定位步骤S300包括S301~S331,下面具体说明。
步骤S301、对图像获取步骤S100获取的图像进行预处理,以提高图像的对比度和/或滤除噪声。在一实施例中,步骤S301中预处理以提高图像的对比度的方法可以包括但不限于直方图均衡化、线性拉伸和对数变换等方法。另外,由于噪声在图像中属于高频部分,因此在一实施例中,步骤S301预处理以滤除噪声,可以采用低通滤波,使图像中的高频成份被阻止通过。步骤S301为可选步骤。
步骤S303、将获取的图像分割成若干互不重叠的区域。当然,如果条形码码定位步骤S300包括步骤S301,则步骤S303是将经过预处理的图像分割成若干互不重叠的区域。请参照图5,为将图像分割成若干互不重叠的区域的效果图。对于每一个像素而言,是否位于条形码区域并无明显特征,因此无法基于图像的像素信息进行判断,但是可以根据包含一定数量像素的区域内,各像素之间的关系来判断此区域是否位于条形码区域,换句话说,是判断此区域是否包含组成条形码的像素。在这一步骤中,分割的各区域的大小,可以相同,也可以不同,本实施例采用分割成大小相同的若干区域,另外,区域的大小可以根据拍摄图像中条形码的大小进行设置,通过每个区域32*32像素大小可以满足要求;在一实施例中,还可以设置若干级别,例如低、中、高级别以供用户选择,用户选择相应的分割级别后,图像就会被分割成若干相应级别大小的区域。
从图5中可以看出拍摄图像背景复杂,条形码在图像中有两个,且所占的比例较小且分辨率较低。需要说明的是,图5只是用于说明拍摄的图像所举的一个例子,并不用于限定本申请,例如,在其他的例子中,背景可能会不同,条形码的位置、大小以及数量都可能不同。为了实现对条形码的定位,首先要分析包含条形码的区域区别于图像背景区域的关键特征。发明人发现,条形码是由若干黑白相间的条纹组成,所以条形码在某一方向(例如图5中的水平方向)存在明显的灰度突变,而在另一垂直方向(例如图5中的竖直方向)上灰度几乎没有变化。当然背景图像中某些区域也会有类似的特点,但条形码区域还具有很规则的矩形特征,这是其他区域一般不会同时具有的,另外,由条形码规则可知,条形码起始符的左侧和终止符的右侧会有一定宽度的空白区域,该特点也在一定程度上减少条形码周围的图像对条形码搜索定位的干扰。因此,发明人发现并选择下述一些特征来评估分割后的每一区域,看其是否是条形码区域:
(1)区域的符号对比度变化比特征。由于条形码区域是黑白相间的条纹,因此其一方向(例如,图5中的水平方向)的灰度亮变暗和暗变亮分别所占百分比大约为百分之五十,即由黑变白,由白变黑所占的百分比分别大约为百分之五十。
(2)灰度直方图峰差特征:统计区域的灰度信息,形成区域的灰度直方图,若有两个明显的波峰并且波峰的灰度值相差较大时,则可能存在条形码。
(3)边缘角度直方图峰差特征:统计区域内边缘的方向信息,形成区域的角度直方图,若存在两个明显的波峰且相差接近180°时,则可能存在条形码。
(4)边缘角度直方图峰谷面积特征:统计角度直方图的波峰与最近的两个波谷所围成的面积,若该面积大于某一阈值,则可能存在条形码。
运用上述发明人的发现,接着进行以下步骤。
步骤S305、对步骤S303分割得到的每一区域,获取区域内图像边缘,计算区域内图像边缘所占百分比。在一实施例中,为了获取图像的边缘,可以采用Roberts算子或者Sobel算子进行计算,为了减少运算量,不妨采用Roberts算子,x、y方向的梯度分别为:
其中,i(x,y)代表图像中的坐标为x、y的像素的灰度值。
规范化后获得梯度的幅值为:
梯度方向角为:
步骤S307、判断此区域内图像边缘所占百分比是否大于一百分比阈值Taccept,若不大于,则进行步骤S309、舍弃此区域,若大于,则进行步骤S311。步骤S307中的百分比阈值Taccept可以预设,也可以用户通过相关输入设备进行设置。
步骤S305~步骤S309的目的是为了将一些明显不位于条形码位置的区域给剔除掉,以减少后续的计算量和总的计算时间。条形码包含若干不同的黑条和白条,因此如果一区域位于条形码位置(即此区域包含构成条形码的像素),那么此区域的图像边缘的百分比一定是较高的,这就意味着,若一区域的图像边缘的百分比较低,则此区域不位于条形码位置,可以被舍弃掉。
步骤S311、计算此区域的特征得分,其中计算任何一区域的特征得分时,该区域的特征得分等于此区域的符号对比度百分比得分、灰度直方图峰差得分、边缘角度直方图峰差得分和边缘角度直方图峰谷面积得分相加之和。在一实施例中,计算任何一区域的特征得分时,当此区域的一方向的灰度亮变暗和暗变亮所占百分比分别越接近百分之五十,则此区域的符号对比度百分比得分越高;当此区域的灰度直方图中,若存在两个明显的波峰且波峰的灰度值相差越大时,则此区域的灰度直方图峰差得分越高;当此区域的角度直方图中,若存在两个明显的波峰且相差越接近180度时,则此区域的边缘角度直方图峰差得分越高;当此区域的角度直方图中,统计各波峰与其最近的两个波谷所围成的面积,若该面积越大于一阈值,则此区域的边缘角度直方图峰谷面积得分越高。在实际计算时,由于大多数具有计算功能的硬件(例如计算机)只能处理离散数据,无法处理连续数据,因此可以将360度范围的角度分为180个bin,每个bin为2度,将相应的角度放入相应的bin中,所得角度分布情况即为角度直方图;例如,如图6所示,为一个示意性的角度直方图,在计算峰谷面积时,可以简化为统计峰谷中所包含的像素个数。在一较优实施例中,计算任何一区域的特征得分时,将该区域的符号对比度百分比得分、灰度直方图峰差得分、边缘角度直方图峰谷面积得分边缘角度直方图峰差得分和边缘角度直方图峰谷面积得分相加之前,先将此区域的符号对比度百分比得分、灰度直方图峰差得分、边缘角度直方图峰差得分和边缘角度直方图峰谷面积得分分别乘上一个相应的权重系数;其中这四个权重系数取值都为0~1,且相加之和是1。例如,以f1、f2、f3、f4分别表示一区域的符号对比度百分比得分、灰度直方图峰差得分、边缘角度直方图峰差得分、边缘角度直方图峰谷面积得分,以c代表此区域的特征得分,在不考虑权重系数的情况下,c=f1+f2+f3+f4;在考虑权重系数的情况下,w1、w2、w3、w4分别表示一区域的符号对比度百分比得分的权重系数、灰度直方图峰差得分的权重系数、边缘角度直方图峰差得分的权重系数、边缘角度直方图峰谷面积得分的权重系数,则c=w1*f1+w2*f2+w3*f3+w4*f4,其中w1、w2、w3、w4的取值都为0~1,且w1+w2+w3+w4=1。
步骤S313、判断此区域的特征得分是否大于一特征得分阈值Tconfidence,若不大于,则进行步骤S315、舍弃此区域;若大于,则进行步骤S317、将此区域标记为有用。步骤S313中的特征得分阈值Tconfidence可以预设,也可以用户通过相关输入设备进行设置。
步骤S311~步骤S317是根据各区域的特征得分将一些不属于条形码位置的区域剔除掉。在一实施例中,条形码定位步骤S300可以只包括步骤S305~步骤S309来剔除不属于条形码位置的区域;也可以只包括步骤S311~步骤S317来剔除不属于条形码位置的区域,在这种情况下,步骤S311中就是对步骤S303中分割成的若干互不重叠的区域中,对每一个区域都计算其特征得分;也可以同时包括步骤S305~步骤S309和步骤S311~步骤S317,在这种情况下,步骤S311中就是对步骤S307中被判断区域内图像边缘所占百分比大于百分比阈值Taccept的区域计算特征得分,对于在步骤S309中被舍弃的区域则不计算其特征得分。
步骤S319、对步骤S317中被标记为有用的区域进行形态学操作,形态学操作包括膨胀和/或腐蚀;其中,膨胀用于填充被标记为有用的区域中的孔洞,使区域更规则,腐蚀用于去掉孤立的被标记为有用的区域。步骤S319为可选步骤。
步骤S321、对各被标记为有用的区域进行区域合并,得到若干个合并后的条形码区域,例如,若对图5中的图像进行上述步骤处理,很可能就得到两个条形码区域。由于步骤S319为可选步骤,因此,当步骤S319存在时,步骤S321是对步骤S319中进行过形态学操作的有用的区域进行合并,当步骤S319不存在时,则步骤S321是对步骤S317中各被标记为有用的区域直接进行合并。在一实施例中,进行区域合并可以采用(1)连通性分析方法或(2)区域增长的方法进行。下面分别就这两种方法进行说明。
(1)当步骤S321采用连通性分析的方法进行区域合并:
连通性分析的方法可以采用游程编码的试,游程(Run)定义为:连通且位于同一行的块,其结构中包括游程(Run)所在行(row),开始列(start),结束列(end)和标记。
运用游程进行连通性判断只需进行相邻两行的游程的连通性,游程的连通性判断法则如下:
其中X[i].start、X[i].end表示第level行的游程的开始列与结束列,其中level是大于0的整数;X[j].start、X[j].end表示第level-1行的游程的开始列与结束列。当offset=0时,表示4连通,当offset=1时,表示8连通。如果上一行游程X[j]与此行游程X[i]满足上述判断法则,则判定游程X[j]与游程X[i]连通,反之,则判定两者不连通。
按上述判断法则进行游程标记,之后就进行等价合并。例如,如图7为进行完游程标记可能出现的情况,图7中第一行标记为1的游程与第二行标记为3的游程、第四行标记为6的游程理论上属于同一个连通区域,所以要将它们进行等价对合并;第一行标记为2的游程与第二行标记为4的游程、第三行标记为5的游程理论上属于同一个连通区域,所以要将它们进行等价对合,等价合并得如图8所示。
具体地,步骤S321采用连通性分析的方法进行区域合并,如图9所示,其包括步骤步骤P101~P119:
步骤P101、对各被标记为有用的区域进行游程编码,并返回各游程(Runs)。
步骤P103、遍历各游程。
步骤P105、判断遍历是否结束,即判断是否已遍历全部游程。当判断遍历结束,则进行步骤P107;当判断遍历没有结束,则进行步骤P109。
步骤P107、合并等价对。
步骤P109、判断当前行游程Run[i],其前一行是否有重合的游程Run[j]。判断的依据上述的游程的连通性判断法则。若当前行游程,其前一行有重合的游程,则进行步骤P111,否则进行步骤P115。
步骤P111、判断当前行游程的标记是否等于0,即判断Run[i].lebel是否等于0。若等于,则进行步骤P113,否则进行步骤P117。
步骤S113、将Run[j].lebel的值赋给Run[i].lebel。之后重新从步骤103开始,遍历下一行游程。
步骤P115、将lebel的值加1,再将lebel的值赋给Run[i].lebel。之后,重新从步骤103开始,遍历下一行游程。
步骤P117、判断Run[j].lebel与Run[i].lebel是否不等于,若是不等于,则两者不是等价对,若是相等,则进行步骤P119,将i和j标记为等价对,接着重新进行步骤P109。
(2)当步骤S321采用区域增长的方法进行区域合并:
当区域合并采用区域增长的方法来实现时,是通过隶属度标记流程对图像进行标记。先选取之前被标记为有用的区域中的像素作为种子,利用区域生长法合并区域。在种子点的8领域内被标记为有用搜索满足角度阈值τ的像素点加入到此区域,区域角度记为θregion,初始角度为种子点的梯度方向。其角度条件为:
|θregion-θi|≤τ
式中,θi为8邻域中像素点的梯度方向。
每增加一个点,线段区域的角度就会更新一次,其更新方法为:
这里的下标i用于遍历区域中的所有像素,如此持续进行,直到没有任何像素可以添加到线段区域中。在一实施例中,角度误差可以设置为22.5度,也就是说对于整个矩形而言可以容忍45度的角度误差。在该容忍误差范围内的像素点都将被选择到矩形当中。
获得区域后,可以计算区域的几何特性,如外接矩形、面积、重心等。矩形的中心为:
式中,下标j用于遍历矩形区域内的所有像素,矩形的主方向为最小特征值对应的特征向量的角度。因此,Hessian矩阵为:
其中
另外,该区域的面积即为区域内的像素个数。在一实施例中,若采用连通性分析方法进行合并,可以按照下式计算:
式中:Area(j)表示标记为j的区域面积;runj(i)表示标记为j的游程run(j);runj(i).start表示标记为j的的run(j)开始列;runj(i).end表示标记为j的run(j)的结束列。
在一实施例中,上述对图像中区域进行标记、舍弃、形态学操作及区域合并,并不是原图上进行操作的,对区域进行标记、舍弃、合并和形态学操作,是在一标记图进行,其中所述标记图包括与分割后的区域的数量相应的像素,标记图中每一个像素对应着分割后的一个区域。例如,在步骤S303中将获取的图像分割成M*N个等大的区域后,相应地,生成一个标记图,此标记图中则包括M*N个像素,标记图中每一个像素都对应着步骤S303中分割后的一个区域。因此,将一个区域标记为有用,可以是在标记图中将此区域对应的像素的灰度值设置为255,将一个区域舍弃,可以是在标记图中将此区域对应的像素的灰度值设置为0,如图10所示,图(a)为获取的图像被分割后若干区域的示意图,图(b)为对进行标记后的对应的标记图;引入标记图,而不是在原图上进行操作,这样做的好处是:每个区域用一个像素代替,可以大大减少计算量以及运算时间。
步骤S323、在步骤S321中得到的若干个条形码区域后,对于每一个条形码区域,判断此区域的面积、长和宽是否符合一相应阈值条件,若不符合,则进行步骤S325,舍弃此条形码区域;若符合,则进行步骤S327或步骤S500。步骤S323为可选步骤,其目的是为了进一步筛选出包含条形码的区域,以确证步骤S321得到的若干个条形码区域,每一个条形码区域,都是包含条形码的区域,因此步骤S323之后,在一实施例中,可以接着进行步骤S323,在另一实施例中,也可以直接进行条形码识别步骤S500。
步骤S327、在对面积、长和宽符合相应阈值条件的条形码区域解码之前,还确定此条形码区域的中心线,如图11所示,并在其中心线上下偏移一定距离的两个矩形区域内,分别提取各矩形区域的角点,进行直线拟合,以获取条形码的精确位置。
步骤S329、判断此条形码区域是否包含完整的条形码,若是,则进行条形码识别步骤S500,反之,则进行步骤S331。
步骤S331、将此条形码区域补全为包含完整条形码的区域,之后再进行条形码识别步骤S500。在一实施例中,根据设置的阈值条件中的条形码的长宽,按照一定比例在此条形码区域的上下左右各偏移一定距离,来将此条形码区域补全为包含完整条形码的区域。
步骤S327~步骤S331为可选步骤,其目的是为了使在条形码识别步骤S500中被解码的条形码区域,是包含完整条形码的区域,这样能提高解码的精确度。在步骤S321中进行区域合并后,有一些条形码区域,有可能是包含不完整的条形码,条形码的边缘的像素,有可能会被包含在与条形码区域相领的分割区域,在一些情况下,此相邻的区域可能由于只包含极少量的条形码的边缘的像素,因而在条形码定位步骤S300中被舍弃掉了。步骤S327~步骤S331正是为了解决此情况。
条形码识别步骤S500,分别对各条形码区域进行解码,以得到各条形码所代表的信息。
在一较优实施例中,如图12所示,条形码识别步骤S500包括步骤S501和/或S503。
步骤S501、对区域进行解码之前,先对该区域进行旋转和畸变校正。步骤S501的引入,使得本申请对于存在畸变的图像也能进行解码,因此本申请具有较好的鲁棒性和环境适应性。
在一实施例中,透视变换按照下式进行:
上式中需要确定6个参数,因此只要有三组点对应,建立6个方程。为了减少噪声的影响,在一实施例中可以选择16个点进行对应,求解参数。
在一实施例中,步骤S501具体可分两步进行,先确定旋转中心:获取条形码的精确位置后,根据四个角点的位置确定区域的中心坐标,两条虚线的交点即为所求,如图13(a)所示;再确定旋转角度:统计区域内边缘方向的主方向或者根据直线拟合所得角度求均值,旋转后的条形码方位如图13(b)所示。
步骤S501的引入,使得本申请对于存在畸变的图像也能进行解码,因此本申请具有较好的鲁棒性和环境适应性。
S503、将此区域进行投影,之后再根据区域的投影进行解码。步骤S503的引入,使得本申请对于印刷质量不佳的条形码,或受污损的条形码也能进行解码,通过二值化计算投影的灰度和的方式,增加解码的鲁棒性。在一具体实施例中,步骤S503可以是对旋转后的图像做垂直投影,统计其灰度的和之后求平均值,对形成的投影图进行高斯滤波,去除微小波动及噪声,检测边缘并统计边缘距离并将其标记为不同的等级,然后进行解码。
以上就是本申请公开的条形码读取方法,相应地,本申请还公开了一种条形码读取装置,请参照图14,其包括图像获取部件100、条形码定位部件300和条形码识别部件500。
图像获取部件100用于获取包含条形码的图像。图像获取部件100的工作流程和结构可参照图3所示的图像获取步骤S100,在此不再赘述。
条形码定位部件300用于从获取的图像中定位出条形码。在一实施例中,请参照图15,条形码定位部件300包括预处理单元301、分割单元303、图像边缘百分比计算单元305、图像边缘百分比判断单元307、舍弃单元309、特征得分计算单元311、特征得分判断单元313、标记单元317、形态学操作单元319、区域合并单元321、区域筛选单元323、精定位单元327和补全单元331,下面具体说明。
预处理单元301对图像获取部件100获取的图像进行预处理,以提高图像的对比度和/或滤除噪声。在一实施例中,预处理单元301中预处理以提高图像的对比度,可以包括但不限于是对图像进行直方图均衡化、线性拉伸和对数变换等。另外,由于噪声在图像中属于高频部分,因此在一实施例中,预处理单元301预处理以滤除噪声,可以采用低通滤波器实现,使图像中的高频成份被阻止通过。预处理单元301为可选的单元。
分割单元303用于将获取的图像分割成若干互不重叠的区域。
图像边缘百分比计算单元305用于对于分割单元303分割出的每一区域,获取区域内图像边缘,计算区域内图像边缘所占百分比。
在一实施例中,为了获取图像的边缘,可以采用Roberts算子或者Sobel算子进行计算,为了减少运算量,不妨采用Roberts算子,x、y方向的梯度分别为:
其中,i(x,y)代表图像中的坐标为x、y的像素的灰度值。
规范化后获得梯度的幅值为:
梯度方向角为:
图像边缘百分比判断单元307用于判断区域内图像边缘所占百分比是否大于一百分比阈值Taccept;若不大于,则舍弃单元309将此区域舍弃,若大于,则特征得分计算单元311再计算此区域的特征得分。
单元305~309的目的是为了将一些明显不位于条形码位置的区域给剔除掉,以减少后续的计算量和总的计算时间。条形码包含若干不同的黑条和白条,因此如果一区域位于条形码位置(即此区域包含构成条形码的像素),那么此区域的图像边缘的百分比一定是较高的,这就意味着,若一区域的图像边缘的百分比较低,则此区域不位于条形码位置,可以被舍弃掉。因此,单元305~309为可选单元,当实施例包括单元305~309,则特征得分计算单元311中是对图像边缘百分比判断单元307判断结果为图像边缘所占百分比大于百分比阈值Taccept的区域进行特征得分计算,当实施例不包括单元305~309,则特征得分计算单元311中是对分割单元303分割得到的每一个区域都计算特征得分。
特征得分计算单元311用于计算此区域的特征得分。在一具体实施例中,特征得分计算单元311,如图16所示,包括第一计算子单元311a、第二计算子单元311b、第三计算子单元311c、第四计算子单元311d和加法子单元311f,在一较优实施例中,还可以包括权重子单元311e。具体地,第一计算子单元311a用于计算此区域的符号对比度百分比得分;第二计算子单元311b用于计算此区域的灰度直方图峰差得分;第三计算子单元311c用于计算此区域的边缘角度直方图峰差得分;第四计算子单元311d用于计算此区域的边缘角度直方图峰谷面积得分;加法子单元311f用于将第一计算子单元311a、第二计算子单元311b、第三计算子单元311c、第四计算子单元311d计算的得分相加,以得到该区域的特征得分。当特征得分计算单元311还包括权重子单元311e时,权重子单元311e用于加法子单元311f将第一计算子单元311a、第二计算子单元311b、第三计算子单元311c、第四计算子单元311d计算的得分相加之前,先将此区域的符号对比度百分比得分、灰度直方图峰差得分、边缘角度直方图峰差得分和边缘角度直方图峰谷面积得分分别乘上一个相应的权重系数;其中这四个权重系数取值都为0~1,且相加之和是1。在一较优实施例中,第一计算子单元311a在计算区域的符号对比度百分比得分时,当此区域的一方向的灰度亮变暗和暗变亮所占百分比分别越接近百分之五十,则此区域的符号对比度百分比得分越高;第二计算子单元311b在计算区域的灰度直方图峰差得分时,当此区域的灰度直方图中,若存在两个明显的波峰且波峰的灰度值相差越大时,则此区域的灰度直方图峰差得分越高;第三计算子单元311c在计算区域的边缘角度直方图峰差得分时,当此区域的角度直方图中,若存在两个明显的波峰且相差越接近180度时,则此区域的边缘角度直方图峰差得分越高;第四计算子单元311d在计算此区域的边缘角度直方图峰谷面积得分时,当此区域的角度直方图中,统计各波峰与其最近的两个波谷所围成的面积,若该面积越大于一阈值,则此区域的边缘角度直方图峰谷面积得分越高。
特征得分判断单元313用于判断此区域的特征得分是否大于一特征得分阈值Tconfidence,若大于,则标记单元317将此区域标记为有用,反之,则舍弃单元309舍弃此区域。
形态学操作单元319用于对标记单元317中被标记为有用的区域进行形态学操作。形态学操作单元319包括膨胀子单元和/或腐蚀子单元(图中未画出),其中,膨胀子单元用于填充被标记为有用的区域中的孔洞,使区域更规则,腐蚀子单元用于去掉孤立的被标记为有用的区域。
形态学操作单元319为可选单元,当实施例包括单元319时,则区域合并单元321对经过形态学操作的各被标记为有用的区域进行区域合并,得到若干个合并后的条形码区域;当实施例不包括单元319时,则区域合并单元321对直接对标记单元317中各被标记为有用的区域进行区域合并,得到若干个合并后的条形码区域。区域合并单元321的实现方式可以参考步骤S321,在此不再赘述。
区域筛选单元323用于在区域合并单元321合并得到若干个条形码区域后,对于每一个条形码区域,判断此区域的面积、长和宽是否符合一相应阈值条件,若不符合,则舍弃单元309舍弃此条形码区域,若符合,则条形码识别部件500再对此条形码区域进行解码。区域筛选单元323也是可选单元。
精定位单元327用于条形码识别部件500在对面积、长和宽符合相应阈值条件的条形码区域解码之前,确定条形码区域的中心线,并在其中心线上下偏移一定距离的两个矩形区域内,分别提取各矩形区域的角点,进行直线拟合,以获取条形码的精确位置,并判断此条形码区域是否完全包含条形码,若是,则条形码识别部件500再对此条形码区域进行解码,反之,补全单元331将条形码区域补全为完全包含条形码的区域,之后条形码识别部件500再对此补全为完全包含条形码的区域进行解码。在一实施例中,补全单元331是根据设置的阈值条件中的条形码的长宽,按照一定比例在此条形码区域的上下左右各偏移一定距离,来将此条形码区域补全为包含完整条形码的区域。精定位单元327和补全单元331也是可选单元。
条形码识别部件500用于分别对各条形码区域进行解码,以得到各条形码所代表的信息。在一较优实施例中,如图17所示,条形码识别部件500包括校正单元501和/或投影单元503。
校正单元501用于条形码识别部件500对区域进行解码之前,先对该区域进行旋转和畸变校正。在一实施例中,校正单元501先确定旋转中心:获取条形码的精确位置后,根据四个角点的位置确定区域的中心坐标,两条虚线的交点即为所求,如上图13(a)所示;再确定旋转角度:统计区域内边缘方向的主方向或者根据直线拟合所得角度求均值,旋转后的条形码方位如上图13(b)所示。校正单元501的引入,使得本申请对于存在畸变的图像也能进行解码,因此本申请具有较好的鲁棒性和环境适应性。
投影单元503用于条形码识别部件500对区域进行解码之前,先将此区域进行投影,条形码识别部件500再根据此区域的投影进行解码。投影单元503的引入,使得本申请对于印刷质量不佳的条形码,或受污损的条形码也能进行解码,通过二值化计算投影的灰度和的方式,增加解码的鲁棒性。在一具体实施例中,投影单元503可以是对旋转后的图像做垂直投影,统计其灰度的和之后求平均值,对形成的投影图进行高斯滤波,去除微小波动及噪声,检测边缘并统计边缘距离并将其标记为不同的等级,然后条形码识别部件500再进行解码。
本申请可以同时获取一张图像中的多个条形码区域,并且本申请不要求条形码之间具有固定位置偏差,无需通过模板匹配方法定位条形码,适合于条码之间位置不固定的情景,如邮包分拣、贴条码等;本申请对于基于决策树和区域合并来进行条形码定位,使得在复杂背景中,精确获得条形码的位置,提高条形码定位的稳定性及准确性;本申请在解码前对图像进行畸变校正,解决柱状等表面无法解码的问题,具有较好的鲁棒性和环境适应性;本申请对于印刷质量不佳的条形码,或受污损的条形码也能进行解码,通过二值化计算投影的灰度和的方式,增加解码的鲁棒性。
以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请发明构思的前提下,还可以做出若干简单推演或替换。
Claims (17)
1.一种条形码读取方法,其特征在于,包括:
图像获取步骤,获取包含条形码的图像;
条形码定位步骤,从获取的图像中定位出条形码,具体地,包括:
将获取的图像分割成若干互不重叠的区域;
对于每一区域,计算此区域的特征得分,并判断此区域的特征得分是否大于一特征得分阈值Tconfidence,若大于,则将此区域标记为有用,反之,则舍弃此区域;其中,计算任何一区域的特征得分时,该区域的特征得分等于此区域的符号对比度百分比得分、灰度直方图峰差得分、边缘角度直方图峰差得分和边缘角度直方图峰谷面积得分相加之和;
对各被标记为有用的区域进行区域合并,得到若干个合并后的条形码区域;
条形码识别步骤,分别对各条形码区域进行解码,以得到各条形码所代表的信息;
在条形码定位步骤中,计算任何一区域的特征得分时:
当此区域的一方向的灰度亮变暗和暗变亮分别所占百分比越接近百分之五十,则此区域的符号对比度百分比得分越高;
当此区域的灰度直方图中,若存在两个明显的波峰且波峰的灰度值相差越大时,则此区域的灰度直方图峰差得分越高;
当此区域的角度直方图中,若存在两个明显的波峰且相差越接近180度时,则此区域的分边缘角度直方图峰差得分越高;
当此区域的角度直方图中,统计各波峰与其最近的两个波谷所围成的面积,若该面积越大于一阈值,则此区域的边缘角度直方图峰谷面积得分越高。
2.如权利要求1所述的条形码读取方法,其特征在于,在条形码定位步骤中,计算任何一区域的特征得分时,将该区域的符号对比度百分比得分、灰度直方图峰差得分、边缘角度直方图峰差得分和边缘角度直方图峰谷面积得分相加之前,先将此区域的符号对比度百分比得分、灰度直方图峰差得分、边缘角度直方图峰差得分和边缘角度直方图峰谷面积得分分别乘上一个相应的权重系数;其中这四个权重系数取值都为0~1,且相加之和是1。
3.如权利要求1所述的条形码读取方法,其特征在于,所述条形码定位步骤还包括将获取的图像分割成若干互不重叠的区域之后且计算各区域的特征得分之前,对于每一区域,获取区域内图像边缘,并计算区域内图像边缘所占百分比;判断区域内图像边缘所占百分比是否大于一百分比阈值Taccept,若不大于,则舍弃此区域,若大于,则再计算此区域的特征得分。
4.如权利要求1所述的条形码读取方法,其特征在于,条形码定位步骤中,在对各被标记为有用的区域进行区域合并之前,将对各被标记为有用的区域进行形态学操作,所述形态学操作包括膨胀和/或腐蚀;其中,膨胀用于填充被标记为有用的区域中的孔洞,使区域更规则,腐蚀用于去掉孤立的被标记为有用的区域。
5.如权利要求4所述的条形码读取方法,其特征在于,对区域进行标记、舍弃、合并和形态学操作,是在一标记图进行,其中所述标记图包括与分割后的区域的数量相应的像素,标记图中每一个像素对应着分割后的一个区域。
6.如权利要求1至5中任一项所述的条形码读取方法,其特征在于,条形码定位步骤中,区域合并得到若干个条形码区域后,对于每一个条形码区域,判断此区域的面积、长和宽是否符合一相应阈值条件,若不符合,则舍弃此条形码区域,若符合,则在条形码识别步骤中再对此条形码区域进行解码。
7.如权利要求6所述的条形码读取方法,其特征在于,在对面积、长和宽符合相应阈值条件的条形码区域解码之前,还确定条形码区域的中心线,并在其中心线上下偏移一定距离的两个矩形区域内,分别提取各矩形区域的角点,进行直线拟合,以获取条形码的精确位置,并判断此条形码区域是否包含完整的条形码,若是,则进行条形码识别步骤,反之,则将条形码区域补全为包含完整条形码的区域,之后再进行条形码识别步骤。
8.如权利要求1所述的条形码读取方法,其特征在于,在条形码识别步骤中,对区域进行解码之前,先对该区域进行旋转和畸变校正。
9.如权利要求1或8所述的条形码读取方法,其特征在于,在条形码识别步骤中,对区域进行解码之前,先将此区域进行投影,根据区域的投影进行解码。
10.一种条形码读取装置,其特征在于,包括:
图像获取部件,用于获取包含条形码的图像;
条形码定位部件,用于从获取的图像中定位出条形码,具体地,包括:
分割单元,用于将获取的图像分割成若干互不重叠的区域;
特征得分计算单元,用于对于每一区域,计算此区域的特征得分;其中,特征得分计算单元包括:
第一计算子单元,用于计算此区域的符号对比度百分比得分;
第二计算子单元,用于计算此区域的灰度直方图峰差得分;
第三计算子单元,用于计算此区域的边缘角度直方图峰差得分;
第四计算子单元,用于计算此区域的边缘角度直方图峰谷面积得分;
加法子单元,用于将所述第一计算子单元、第二计算子单元、第三计算子单元和第四计算子单元计算的得分相加,以得到该区域的特征得分;
特征得分判断单元,用于判断此区域的特征得分是否大于一特征得分阈值Tconfidence;
标记单元,用于当特征得分判断单元判断此区域的特征得分大于所述特征得分阈值Tconfidence时,将此区域标记为有用;
舍弃单元,用于当特征得分判断单元判断此区域的特征得分不大于所述特征得分阈值Tconfidence时,舍弃此区域;
区域合并单元,用于对各被标记为有用的区域进行区域合并,得到若干个合并后的条形码区域;
条形码识别部件,用于分别对各条形码区域进行解码,以得到各条形码所代表的信息;
第一计算子单元在计算区域的符号对比度百分比得分时,当此区域的一方向的灰度亮变暗和暗变亮分别所占百分比越接近百分之五十,则此区域的符号对比度百分比得分越高;
第二计算子单元在计算区域的灰度直方图峰差得分时,当此区域的灰度直方图中,若存在两个明显的波峰且波峰的灰度值相差越大时,则此区域的灰度直方图峰差得分越高;
第三计算子单元在计算区域的边缘角度直方图峰差得分时,当此区域的角度直方图中,若存在两个明显的波峰且相差越接近180度时,则此区域的边缘角度直方图峰差得分越高;
第四计算子单元在计算此区域的边缘角度直方图峰谷面积得分时,当此区域的角度直方图中,统计各波峰与其最近的两个波谷所围成的面积,若该面积越大于一阈值,则此区域的边缘角度直方图峰谷面积得分越高。
11.如权利要求10所述的条形码读取装置,其特征在于,所述特征得分计算单元还包括权重子单元,用于加法子单元将所述第一计算子单元、第二计算子单元、第三计算子单元和第四计算子单元计算的得分相加之前,先将此区域的符号对比度百分比得分、灰度直方图峰差得分、边缘角度直方图峰差得分和边缘角度直方图峰谷面积得分分别乘上一个相应的权重系数;其中这四个权重系数取值都为0~1,且相加之和是1。
12.如权利要求10所述的条形码读取装置,其特征在于,所述条形码定位部件还包括:
图像边缘百分比计算单元,用于对于分割单元分割出的每一区域,获取区域内图像边缘,计算区域内图像边缘所占百分比;
图像边缘百分比判断单元,用于判断区域内图像边缘所占百分比是否大于一百分比阈值Taccept;若不大于,则所述舍弃单元将此区域舍弃,若大于,则所述特征得分计算单元再计算此区域的特征得分。
13.如权利要求10所述的条形码读取装置,其特征在于,所述条形码定位部件还包括形态学操作单元,用于区域合并单元在对各被标记为有用的区域进行区域合并之前,将对各被标记为有用的区域进行形态学操作,所述形态学操作单元包括膨胀子单元和/或腐蚀子单元,其中,膨胀子单元用于填充被标记为有用的区域中的孔洞,使区域更规则,腐蚀子单元用于去掉孤立的被标记为有用的区域。
14.如权利要求10至13中任一项所述的条形码读取装置,其特征在于,所述条形码定位部件还包括区域筛选单元,用于在区域合并单元合并得到若干个条形码区域后,对于每一个条形码区域,判断此区域的面积、长和宽是否符合一相应阈值条件,若不符合,则所述舍弃单元舍弃此条形码区域,若符合,则条形码识别部件再对此条形码区域进行解码。
15.如权利要求14所述的条形码读取装置,其特征在于,所述条形码定位部件还包括精定位单元和补全单元;精定位单元用于条形码识别部件在对面积、长和宽符合相应阈值条件的条形码区域解码之前,确定条形码区域的中心线,并在其中心线上下偏移一定距离的两个矩形区域内,分别提取各矩形区域的角点,进行直线拟合,以获取条形码的精确位置,并判断此条形码区域是否完全包含条形码,若是,则所述条形码识别部件对此条形码区域进行解码,反之,则补全单元将条形码区域补全为完全包含条形码的区域,之后所述条形码识别部件再对此补全为完全包含条形码的区域进行解码。
16.如权利要求10所述的条形码读取装置,其特征在于,所述条形码识别部件包括校正单元,用于对区域进行解码之前,先对该区域进行旋转和畸变校正。
17.如权利要求10或16所述的条形码读取装置,其特征在于,所述条形码识别部件还包括投影单元,用于对区域进行解码之前,先将此区域进行投影,条形码识别部件再根据此区域的投影进行解码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610533119 | 2016-07-07 | ||
CN2016105331194 | 2016-07-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106446750A CN106446750A (zh) | 2017-02-22 |
CN106446750B true CN106446750B (zh) | 2018-09-14 |
Family
ID=58169478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610857241.7A Active CN106446750B (zh) | 2016-07-07 | 2016-09-27 | 一种条形码读取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106446750B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106934438B (zh) * | 2017-02-28 | 2019-11-19 | 浙江华睿科技有限公司 | 一种快速反应qr码模块边界调整的方法及装置 |
CN107025639A (zh) * | 2017-04-05 | 2017-08-08 | 中科微至智能制造科技江苏有限公司 | 一种复杂环境下的条码定位方法 |
CN107403124A (zh) * | 2017-07-31 | 2017-11-28 | 苏州经贸职业技术学院 | 一种基于视觉图像的条形码检测识别方法 |
CN107908996B (zh) * | 2017-10-25 | 2020-12-15 | 福建联迪商用设备有限公司 | 一种提取一维条码信息的方法及终端 |
CN108009455B (zh) * | 2017-11-07 | 2019-04-30 | 深圳市华汉伟业科技有限公司 | 一种条形码的扫描信号的解码方法及装置 |
CN108176603A (zh) * | 2017-12-25 | 2018-06-19 | 江苏宏宝锻造股份有限公司 | 发动机连杆多代号识别方法及其自动分拣设备 |
CN109325380B (zh) * | 2018-09-20 | 2021-10-26 | 摩尔元数(福建)科技有限公司 | 通过配置实现标签条码自动解析的方法和系统 |
CN109886122B (zh) * | 2019-01-23 | 2021-01-29 | 珠海市杰理科技股份有限公司 | 车道线检测方法、装置、计算机设备和存储介质 |
CN112118433B (zh) * | 2019-06-20 | 2022-01-04 | 青岛海信激光显示股份有限公司 | 图像显示方法及激光投影设备 |
CN110348443B (zh) * | 2019-08-14 | 2022-04-01 | 厦门大学 | 复杂环境树木主干多特征分离统计方法及树干识别方法 |
CN111476054B (zh) * | 2020-05-07 | 2022-03-08 | 浙江华睿科技股份有限公司 | 解码方法及电子设备 |
CN111639506B (zh) * | 2020-05-29 | 2023-07-04 | 天津维创微智能科技有限公司 | 图像中条形码的定位方法、装置、扫码设备 |
CN112101059B (zh) * | 2020-08-18 | 2023-10-10 | 深圳市优必选科技股份有限公司 | 一种条形码定位方法、装置、终端设备及存储介质 |
EP3961477B1 (en) | 2020-08-24 | 2023-06-07 | Saint-Gobain Glass France | Method for detecting and reading a matrix code marked on a glass substrate |
CN113095102B (zh) * | 2021-03-31 | 2022-07-19 | 深圳市华汉伟业科技有限公司 | 一种条形码区域的定位方法 |
CN114240912A (zh) * | 2021-12-21 | 2022-03-25 | 深圳市易展鸿业科技有限公司 | 一种一维条形码印刷质量的检测方法 |
CN115759148B (zh) * | 2023-01-10 | 2023-04-28 | 深圳思谋信息科技有限公司 | 图像处理方法、装置、计算机设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870790A (zh) * | 2014-04-02 | 2014-06-18 | 胡建国 | 一种二维条码的识别方法及其装置 |
CN104112132A (zh) * | 2014-07-03 | 2014-10-22 | 中国人民解放军第二炮兵工程大学 | 一种枪械编号自动识别方法 |
CN104751187A (zh) * | 2015-04-14 | 2015-07-01 | 山西科达自控股份有限公司 | 抄表图像自动识别方法 |
CN105335744A (zh) * | 2015-11-10 | 2016-02-17 | 佛山科学技术学院 | 一种基于图像骨干抽取条带分布特征的一维码区域定位 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799850B (zh) * | 2012-06-30 | 2016-03-30 | 北京百度网讯科技有限公司 | 一种条形码识别方法和装置 |
CN103927511B (zh) * | 2014-02-25 | 2017-02-15 | 华北电力大学(保定) | 基于差异特征描述的图像识别方法 |
-
2016
- 2016-09-27 CN CN201610857241.7A patent/CN106446750B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870790A (zh) * | 2014-04-02 | 2014-06-18 | 胡建国 | 一种二维条码的识别方法及其装置 |
CN104112132A (zh) * | 2014-07-03 | 2014-10-22 | 中国人民解放军第二炮兵工程大学 | 一种枪械编号自动识别方法 |
CN104751187A (zh) * | 2015-04-14 | 2015-07-01 | 山西科达自控股份有限公司 | 抄表图像自动识别方法 |
CN105335744A (zh) * | 2015-11-10 | 2016-02-17 | 佛山科学技术学院 | 一种基于图像骨干抽取条带分布特征的一维码区域定位 |
Also Published As
Publication number | Publication date |
---|---|
CN106446750A (zh) | 2017-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106446750B (zh) | 一种条形码读取方法及装置 | |
CN108562589B (zh) | 一种对磁路材料表面缺陷进行检测的方法 | |
CN113160192A (zh) | 复杂背景下基于视觉的压雪车外观缺陷检测方法及装置 | |
Çelik et al. | Development of a machine vision system: real-time fabric defect detection and classification with neural networks | |
US6778703B1 (en) | Form recognition using reference areas | |
CN102704215B (zh) | 基于dst文件解析与机器视觉结合的绣布自动切割方法 | |
CN101142584B (zh) | 面部特征检测的方法 | |
JP5546317B2 (ja) | 外観検査装置、外観検査用識別器の生成装置及び外観検査用識別器生成方法ならびに外観検査用識別器生成用コンピュータプログラム | |
CN114140679A (zh) | 一种缺陷融合方法、装置、识别系统及存储介质 | |
CN109583324A (zh) | 一种基于单点多盒检测器的指针仪表读数自动识别方法 | |
CN109343920A (zh) | 一种图像处理方法及其装置、设备和存储介质 | |
CN106033535B (zh) | 电子阅卷方法 | |
Cuevas et al. | Automatic soccer field of play registration | |
CN108171127A (zh) | 一种基于深度学习的发票自动识别方法 | |
CN113033558B (zh) | 一种用于自然场景的文本检测方法及装置、存储介质 | |
CN105844278A (zh) | 一种多特征融合的织物扫描图案识别方法 | |
CN102930251A (zh) | 两维收藏品数据收录与甄别的装置和方法 | |
CN109190625A (zh) | 一种大角度透视变形的集装箱箱号识别方法 | |
CN111553422A (zh) | 手术器械自动识别回收方法及系统 | |
CN115082776A (zh) | 一种基于图像识别的电能表自动检测系统及方法 | |
CN106033534B (zh) | 基于直线检测的电子阅卷方法 | |
CN111127417A (zh) | 一种基于sift特征匹配和改进的ssd算法的软包装卷料印刷缺陷检测方法 | |
CN111783885A (zh) | 一种基于局部增强的毫米波图像的质量分类模型构建方法 | |
CN111161295A (zh) | 一种菜品图像背景剥离方法 | |
CN1575477A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |