CN108021837B - 一种条形码检测方法、条形码检测装置及电子设备 - Google Patents
一种条形码检测方法、条形码检测装置及电子设备 Download PDFInfo
- Publication number
- CN108021837B CN108021837B CN201610965890.9A CN201610965890A CN108021837B CN 108021837 B CN108021837 B CN 108021837B CN 201610965890 A CN201610965890 A CN 201610965890A CN 108021837 B CN108021837 B CN 108021837B
- Authority
- CN
- China
- Prior art keywords
- bar code
- classification
- candidate
- image
- score
- 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
-
- 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/1452—Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
-
- 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/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1469—Methods for optical code recognition the method including quality enhancement steps using sub-pixel interpolation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (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)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种条形码检测方法、条形码检测装置及电子设备,本发明通过将设备获取的图像转换为灰度图像并进行直方图均衡化,分割图像并选择出与条码线轮廓相似的候选条码线,进而重新估计每一个候选条码线的权重,并通过分类统计获得旋转方向以对待处理图像进行旋转矫正,最后,通过对矫正图像中的条形码区域进行识别和分割,以及通过解码获得条码信息。本发明使得条形码检测和识别对角度变化具有较好的鲁棒性,减少检测操作的复杂度。
Description
技术领域
本发明涉及图像处理技术领域,具体涉及一种条形码检测方法、条形码检测装置及电子设备。
背景技术
条形码(Barcode)将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用,使得物品的标识和流动变得非常便利。
当今,越来越多的设备能够以高分辨率拍摄图像,例如智能手机、智能眼镜和其他各种手持终端设备,条形码检测和识别对于这些终端中相关智能应用也变得越发重要。如图1A~图1C所示的现有技术的3种常见的条码识别应用场景,图1A是超市中常见的使用激光扫码器进行条码识别,图1B是将智能手机扫描框对准条形码区域的条码识别,图1C是使用智能眼镜对同样条码线处于竖直方向的情况进行条码识别。图1A~图1C中所有的识别场景都是建立在对图像的先验知识基础上进行的,它假设使用者已经人工识别条形码区域并将扫描框对准条形码区域。条形码使用不同宽度的黑条和白条来表示不同信息,所以,获取条码信息的关键是得到一条穿过所有条码的直线。
可以看出,上述现有的条码检测的方法大多只能应用在“竖直”情况下,即使用者需要手动调整条形码区域与扫描框边界相对齐,以进行条形码的识别。另外,当视野中有多个条形码区域时,使用者则需要逐个进行扫描,这增加了时间开销和操作不便性。
发明内容
本发明实施例要解决的技术问题是提供一种条形码检测方法、条形码检测装置及电子设备,使得条形码检测和识别对角度变化具有较好的鲁棒性,减少检测操作的复杂度。
为解决上述技术问题,本发明实施例提供的条形码检测方法,包括:
将待处理图像转换为灰度图像;
确定所述灰度图像中与条码线轮廓相似的连通区域,得到候选条码线;
确定每个候选条码线相对于竖直方向的倾斜角度,并根据每个候选条码线的预设邻近区域范围内倾斜角度相近似的候选条码线的数量,计算得到每个候选条码线的权重;
根据各个条码线的倾斜角度,确定各个条码线所属的分类;根据每个分类中的候选条码线的权重之和,计算每个分类的分值,并确定出一个以上的分值峰值点,将各个分值峰值点对应的分类作为候选分类;其中,倾斜角度范围预先被划分为多个连续且互不重叠的分类,每个分类对应一个角度范围;
依次按照各个候选分类对应的倾斜角度,旋转所述待处理图像使对应的候选条码线与竖直方向平行,在旋转后的图像中识别并分割出条形码区域,并对所述条形码区域进行解码获得解码信息。
其中,所述将待处理图像转换为灰度图像的步骤,包括:
对所述待处理图像进行灰度化处理,得到第一图像;
对所述第一图像进行高斯滤波降噪处理,得到第二图像;
对所述第二图像进行直方图均衡化处理,得到所述灰度图像。
其中,所述确定所述灰度图像中与条码线轮廓相似的连通区域,得到候选条码线的步骤,包括:
对所述灰度图像进行连通域分析,获得多个连通区域;
从所述多个连通区域中选择出符合预设的条码线长宽比的矩形连通区域,作为候选条码线。
其中,所述根据每个分类中的候选条码线的权重之和,计算每个分类的分值,并确定出一个以上的分值峰值点,将各个分值峰值点对应的分类作为候选分类的步骤,包括:
计算每个分类中的候选条码线的权重的和值,得到该分类的分值;
根据各个分类的分值之间的差异,确定出高分值的分类和低分值的分类;
将相邻分类中的低分值的分类删除,并将该低分值的分类的分值合并至相邻分类中的高分值的分类中,以及,删除剩余的低分值分类;
将剩余的各个分类的分值作为分值峰值点,以及,将剩余的各个分类作为候选分类。
其中,所述在旋转后的图像中识别并分割出条形码区域的步骤,包括:
计算旋转后的图像中的每个像素点在水平方向和竖直方向的梯度之间的差值,根据所述差值的绝对值获得一梯度差值图;
通过形态学操作,对所述梯度差值图进行处理,闭合条形码之间的缝隙并突出条形码区域,进而分割得到条形码区域。
本发明实施例还提供了一种条形码检测装置,包括:
图像预处理单元,用于将待处理图像转换为灰度图像;
线段选择单元,用于确定所述灰度图像中与条码线轮廓相似的连通区域,得到候选条码线;
权重确定单元,用于确定每个候选条码线相对于竖直方向的倾斜角度,并根据每个候选条码线的预设邻近区域范围内倾斜角度相近似的候选条码线的数量,计算得到每个候选条码线的权重;
候选分类确定单元,用于根据各个条码线的倾斜角度,确定各个条码线所属的分类;根据每个分类中的候选条码线的权重之和,计算每个分类的分值,并确定出一个以上的分值峰值点,将各个分值峰值点对应的分类作为候选分类;其中,倾斜角度范围预先被划分为多个连续且互不重叠的分类,每个分类对应一个角度范围;
条形码识别单元,用于依次按照各个候选分类对应的倾斜角度,旋转所述待处理图像使对应的候选条码线与竖直方向平行,在旋转后的图像中识别并分割出条形码区域,并对所述条形码区域进行解码获得解码信息。
其中,所述图像预处理单元包括:
转换处理子单元,用于对所述待处理图像进行灰度化处理,得到第一图像;
滤波处理子单元,用于对所述第一图像进行高斯滤波降噪处理,得到第二图像;
均衡化处理子单元,用于对所述第二图像进行直方图均衡化处理,得到所述灰度图像。
其中,所述线段选择单元包括:
连通域分析子单元,用于对所述灰度图像进行连通域分析,获得多个连通区域;
选择处理子单元,用于从所述多个连通区域中选择出符合预设的条码线长宽比的矩形连通区域,作为候选条码线。
其中,所述候选分类确定单元包括:
分值计算子单元,用于计算每个分类中的候选条码线的权重的和值,得到该分类的分值;
分值调整子单元,用于根据各个分类的分值之间的差异,确定出高分值的分类和低分值的分类;将相邻分类中的低分值的分类删除,并将该低分值的分类的分值合并至相邻分类中的高分值的分类中,以及,删除剩余的低分值分类;
候选分类输出子单元,用于将剩余的各个分类的分值作为分值峰值点,以及,将剩余的各个分类作为候选分类。
其中,所述条形码识别单元包括:
梯度计算子单元,用于计算旋转后的图像中的每个像素点在水平方向和竖直方向的梯度之间的差值,根据所述差值的绝对值获得一梯度差值图;
形态学处理单元,用于通过形态学操作,对所述梯度差值图进行处理,闭合条形码之间的缝隙并突出条形码区域,进而分割得到条形码区域。
本发明实施例还提供了一种条形码检测的电子设备,包括:
处理器;
和存储器,所述存储器中存储有计算机程序指令,
其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行以下步骤:
将待处理图像转换为灰度图像;
确定所述灰度图像中与条码线轮廓相似的连通区域,得到候选条码线;
确定每个候选条码线相对于竖直方向的倾斜角度,并根据每个候选条码线的预设邻近区域范围内倾斜角度相近似的候选条码线的数量,计算得到每个候选条码线的权重;
根据各个条码线的倾斜角度,确定各个条码线所属的分类;根据每个分类中的候选条码线的权重之和,计算每个分类的分值,并确定出一个以上的分值峰值点,将各个分值峰值点对应的分类作为候选分类;其中,倾斜角度范围预先被划分为多个连续且互不重叠的分类,每个分类对应一个角度范围;
依次按照各个候选分类对应的倾斜角度,旋转所述待处理图像使对应的候选条码线与竖直方向平行,在旋转后的图像中识别并分割出条形码区域,并对所述条形码区域进行解码获得解码信息。
与现有技术相比,本发明实施例提供的条形码检测方法、条形码检测装置及电子设备,能够识别出图像中不同倾斜角度的多个条形码,使得多条形码检测和识别对角度变化更加具有鲁棒性,能够方便用户的使用,节省用户精力和提高用户使用体验。
附图说明
图1A~1C为现有技术的3种条码检测技术的应用场景示意图;
图2示出了本发明实施例的一种应用场景;
图3为本发明实施例提供的条形码检测方法的流程示意图;
图4为本发明实施例中的一个待处理图像的示例图;
图5为本发明实施例的包含有两个条形码的灰度图像的一个示例图;
图6为本发明实施例中确定候选分类的一个示例图;
图7A~7B为本发明实施例中按照倾斜角度进行旋转得到的矫正图像的示例图;
图8A~8G为本发明实施例中针对图4的条码识别的过程的示意图;
图9为本发明实施例提供的条形码检测装置的结构示意图;
图10为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本发明的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本发明的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
条形码由于其便利性和高效性而被广泛利用,然而现有技术大多数检测条码的方法要求条形码被提前较好的圈定,检测装置距离目标图像距离要求足够近。但是,图像中的条码线并不总是垂直于水平方向,而且,现有技术的检测方法大多不能处理同一图像中包含有多个不同方向的条形码的场景,而这种多条码情况经常出现在购物环境中。例如,在大件货物扫描系统中,转动货物使条码边缘与扫描框边缘对齐非常困难。虽然一些现有技术尝试通过边缘识别或形态学操作解决这些问题,但是这些技术具有计算复杂性太高和对“非垂直”情况检测不准确等缺点,不能很好的适用于解决不同环境下的条码检测问题。
如上所述,边缘识别或形态学操作被广泛应用于垂直方向的条形码识别,由于需要条形码保持垂直或与扫描框边界对齐,这就限制了多条形码检测的灵活性。本发明实施例提供的条形码检测方法,使多条码识别和检测针对角度变化情况更有鲁棒性,适用于以任意方向旋转的条形码,并且不需要使用者额外的精力去调整条形码的方向,从而能够提高条形码检测的效率,改善用户的使用体验。本发明实施例提供的条形码检测方法,可用于多种系统和应用环境,例如智能购物系统,虚拟现实系统,大型货物扫描系统等等。特别的,本发明实施例能够处理多个具有不同旋转方向的条形码出现在同一幅图像的情况。
图2示出了本发明实施例的一种应用场景。应用场景100包括智能眼镜110、计算机120和货架130。智能眼镜110有图像获取功能,计算机120分析由智能眼镜110获取的图像并调整条形码方向至竖直方向,然后检测条形码区域,解码后的结果将被显示在智能眼镜110上或其他显示设备。货架130上摆放多种具有不同条形码的商品,条形码朝向智能眼镜110。该应用系统100仅是本发明实施例的一个应用场景示例,本发明并不局限于此,应用系统的组成部分可以根据需求变化会增加或减少。
请参照图3,本发明实施例提供的条形码检测方法,包括:
步骤31,将待处理图像转换为灰度图像。
这里,上述待处理图像可以是各种终端设备拍摄获得的图像,如彩色图像,该图像里通常包括有一个或多个条形码。图4给出了一张包含有两个物品包装盒的彩色图像(由于打印原因图4显示成灰色图像),其中每个物品包装盒上均有一个条形码。本实施例对图像中条形码的条码线的方向并没有要求,即不需要条码线与图像的纵坐标平行(或垂直)。现有技术的条形码检测环境下,通常要求条码线与图像的纵坐标相平行,即条码线处于竖直方向。本文中,条码线的方向为条码线长边的方向。
为了进行后续处理,在步骤31中,需要将待处理图像转换为灰度图像,例如,通过灰度化处理即可获得灰度图像。为了便于后续处理,这里还可以进一步提升灰度图像的质量,例如,在对所述待处理图像进行灰度化处理,得到第一图像之后,进一步通过对所述第一图像进行高斯滤波降噪处理,和/或,进行直方图均衡化(Histogram Equalization)处理以增强图像对比度,得到所述灰度图像。
步骤32,确定灰度图像中与条码线轮廓相似的连通区域,得到候选条码线。
这里,在步骤32中,可以通过连通区域分析分割图像,选择和条码线的轮廓相似度满足预设门限的连通区域作为条码线,具体的,首先,可以通过对灰度图像进行连通域分析,获得多个连通区域。然后,从多个连通区域中选择出符合预设的条码线长宽比的矩形连通区域,作为候选条码线。例如,对于灰度图像中具有相同灰度值的相邻像素可以被标记为相同的标记数字,具有不同灰度值的相邻像素可以被标记为不同的标记数字,这样,将具有相同数字的相邻像素所构成的区域作为一个连通区域,从而将图像分割为多个连通区域。图5给出了针对图4使用图像连通区域分析分割后获得的图像。
由于条码线段都是具有较大长宽比的矩形,因此这里优选的选择具有矩形轮廓或近似矩形轮廓的矩形连通区域。所述近似矩形轮廓是可以通过与矩形轮廓的轮廓相似度满足预设条件的轮廓,关于如何计算轮廓相似度的方式,可以参考相关现有技术,本文不再展开说明。
上述公式中,Ri表示矩形连通区域i的长宽比,δi表示矩形连通区域i是否为候选条码线,其中δi取值1时表示矩形连通区域i是候选条码线,δi取值0时表示矩形连通区域i不是候选条码线。
步骤33,确定每个候选条码线相对于竖直方向的倾斜角度,并根据每个候选条码线的预设邻近区域范围内倾斜角度相近似的候选条码线的数量,计算得到每个候选条码线的权重。
这里,在选择出候选条码线后,继续计算每个候选条码线相对于竖直方向的倾斜角度。本文中,“竖直方向”表示一个预先定义的方向,当条码线的长边平行于该竖直方向时,可以利用现有的各种条形码扫描设备进行条形码的扫描和识别,例如,该竖直方向可以是与用于扫描条形码的扫描框中的扫描线垂直的方向,或者是与待处理图像的其中一个边相平行的方向,等等。候选条码线的倾斜角度,可以按照候选条码线的轮廓中的长边与相对于竖直方向的角度进行计算。
由于同一条形码区域的条码线具有相同的倾斜角,在步骤32中选择出的具有大长宽比特征的条码线中,可能包含有图像背景中不属于条形码区域的长边缘,即发生误选择的情况,例如,仍然以图4为例,图4中矩形方框中的物品包装盒的长边缘容易被误识别为条码线。为了防止这些错误对后续步骤的不利影响,本实施例提出权重的概念。通常情况下,条形码区域内被选中的条码线周围一定有其他被选中的条码线,即在一定区域内倾斜角度值相近的条码线应该具有高密度分布的特点,所以在步骤33中计算各个候选条码线的权重时,每个候选条码线的权重,与该候选条码线的预设邻近区域范围内倾斜角度相近似的候选条码线的数量成正比,下面提供一种计算权重的具体示例,但本发明并不局限于此。
例如,以一条候选条码线中心为圆心,半径为50个像素的范围内应该存在其他角度相近的候选条码线,否则认为该候选条码线为噪声。根据这一特点,本示例定义权重wi的更新函数如下,其中,wi的初始值为0:
dis(i,j)表示候选条码线li中点和候选条码线lj中点之间的距离;
dec(i,j)表示候选条码线li和候选条码线lj之间的角度差;
votei表示候选条码线li周围符合相似条件的候选条码线的数量;
以上更新函数表示某个候选条码线的权重,等于与该候选条码线距离小于50个像素,且倾斜角的差异在2度以内的候选条码线的数量。这里两个候选条码线之间的距离,通过两个候选条码线各自中点的距离来表征。
步骤34,根据各个条码线的倾斜角度,确定各个条码线所属的分类;根据每个分类中的候选条码线的权重之和,计算每个分类的分值,并确定出一个以上的分值峰值点,将各个分值峰值点对应的分类作为候选分类;其中,倾斜角度范围预先被划分为多个连续且互不重叠的分类,每个分类对应一个角度范围。
这里,预先将倾斜角度范围划分成多个分类,每个分类对应于一相同大小的角度范围。考虑到实现复杂度和计算准确性,每个分类对应的角度范围优选的为2~5度之间,本实施例以3度为例,将倾斜角度[0,90)划分成30个分类,即分类1、分类2、分类3……分类29、分类30,每个分类对应的角度范围依次为[0,3)、[3,6)、[6,9)……[84,87)、[87,90)。可见,相邻分类的角度范围可以合并成一个连续的角度范围,例如,分类1和分类2的角度范围可以合并为[0,6)。这里的角度值的单位均为度。
在步骤34中,通过计算每个分类中的候选条码线的权重的和值,得到该分类的分值;根据各个分类的分值之间的差异,确定出高分值的分类和低分值的分类;将相邻分类中的低分值的分类删除,并将该低分值的分类的分值合并至相邻分类中的高分值的分类中,以及,删除剩余的低分值分类;将剩余的各个分类的分值,作为分值峰值点,以及,将剩余的各个分类,作为候选分类。
这里,高分值/低分值可以依据分值之间的差异程度来确定,例如,将所有分类的分值按照从高到低的顺序依次排列得到一个分值序列,从该分值序列中的第一个分值开始逐个判断,直至满足以下条件为止:该序列中的某个分值(假设为第一分值),小于该第一分值的前一个分值与一个预设比例(如0.5)的乘积;此时,将该序列中该第一分值之后的所有分值(包括第一分值)作为低分值,将该序列中位于第一分值之前的所有分值作为高分值。又例如,将分值大于第一数值的分值,作为高分值,而将分值低于第二数值的分值,作为低分值。这里,第一数值和第二数值可以根据对样本条形码图像的统计结果来设置。
对于相邻分类中的两个分类分别为高分值和低分值的情形,通常是由于倾斜角度计算时的微小差别导致同一条形码的条码线被划分到了两个或多个分类中,因此以上步骤中将与高分值分类相邻的低值点分类的分值加入高分值分类。依然以图4所示的图像为例,图6示出了该图像中各个分类的分值的计算结果,图6中横轴表示分类1~30,纵轴表示各个分类的分值,可以看出,分类19和分类20为相邻分类,分类20的分值为低分值,分类19的分值为高分值,因此将分类20的分值合并到分类19中,然后删除分类20;对于孤立的低分值的分类1,也进行删除。这样,最后获得两个峰值点,分别为分类13的峰值点1和分类19的峰值点2,从而将分类13和分类19作为候选分类。
通过上述处理,可以在后续旋转图像之前,将图像背景中的被选中的长边缘所产生的“噪声”影响排除。
步骤35,依次按照各个候选分类对应的倾斜角度,旋转所述待处理图像使对应的候选条码线与竖直方向平行,在旋转后的图像中识别并分割出条形码区域,并对所述条形码区域进行解码。
这里,根据每个候选分类对应的倾斜角度分别进行上述图像旋转、图像识别和分割以及条形码区域解码的处理,从而解码得到待处理图像中的各个条形码的内容。例如,按照候选分类对应的倾斜角度旋转所述待处理图像时,由于候选分类对应的倾斜角度为一个角度范围,因此可以以该角度范围的中心值进行旋转,例如,假设图6中的候选分类13和候选分类19分别对应于角度范围[36,39)和[54,57),则按照候选分类13对应的倾斜角度进行旋转时,可以旋转37.5度,从而使得分类13中的条码线与竖直方向平行或近似平行;类似的,按照候选分类19对应的倾斜角度进行旋转时,可以旋转55.5度,从而使得分类19中的条码线与竖直方向平行或近似平行。当然,这里也可以按照上述候选分类的角度范围中的其他角度值进行旋转。在旋转时,要考虑旋转的方向,以使旋转的角度能够抵消倾斜角度,使条码线与竖直方向相平行。图7A和图7B分别示出了按照图6中的2个候选分类对应的倾斜角度进行旋转得到的矫正图像,可以看出,每个旋转后的图像中,都有一个条形码的条码线被调整至竖直方向。
在上述步骤35中,获得旋转后的图像后,可以按照现有技术的形态学操作类似的方式,通过搜索方法识别条形码区域并分割出条形码区域。本发明实施例中,在进行形态学操作时,可以通过分别计算旋转后的图像中每个像素点在水平方向和竖直方向的梯度值,然后计算水平方向和竖直方向的梯度值之间的差值的绝对值,进而获得一梯度差值图,然后,通过形态学操作,对所述梯度差值图进行处理,闭合条形码之间的缝隙并突出条形码区域,进而分割得到条形码区域,舍弃剩余图像区域。通过上述闭合处理,可以合并距离较宽的白条间隙。
图8A~8G图示了针对图4的条码识别的过程。图8A给出了针对图4旋转后的图7A,使用bottom-hat滤波器突出中的线段得到Iinput。图8B给出了在Iinput图像上做核为的闭操作,得到闭操作后的Iinput与原Iinput图像的插值图像Ibottomhat。
图8C和图8D分别计算水平方向和竖直方向的图像梯度,条码图像沿水平方向梯度非常大而沿竖直方向梯度很小,两个方向的梯度差值大于其他任何两个方向的差值。在图8D中条形码区域非常明显,但是其他具有相同梯度特点的小区域也被保留下来。图8E中利用形态学操作闭合条码之间的缝隙并消除不属于条码的小区域。图8F中方框中的就是固定的条形码区域。图8G为被分割的条形码区域图像。
类似的,针对图4旋转后的图7B,也可以按照上述过程进行处理,获得图4中的另外一个条形码。
在上述步骤35中,条形码解码可以通过在解码库中寻找对条码线区域对应的条码数值,具体的解码技术本文不再赘述。如果有多个候选分类,则需要进行多次的对图像进行相应的旋转、识别和分割条形码区域及解码的处理。当然,旋转后的某个图像中也可能存在着多个处于竖直方向的条形码区域,按照以上步骤能够识别出这些条形码区域并进行解码。
从以上所述可以看出,本发明实施例提供的条形码检测方法,能够识别出图像中不同倾斜角度的多个条形码,使得多条形码检测和识别对角度变化更加具有鲁棒性,能够方便用户的使用,节省用户精力和提高用户使用体验。
本发明实施例还提供了一种条形码检测装置90,如图9所示,该条形码检测装置90包括:
图像预处理单元91,用于将待处理图像转换为灰度图像;
线段选择单元92,用于确定所述灰度图像中与条码线轮廓相似的连通区域,得到候选条码线;
权重确定单元93,用于确定每个候选条码线相对于竖直方向的倾斜角度,并根据每个候选条码线的预设邻近区域范围内倾斜角度相近似的候选条码线的数量,计算得到每个候选条码线的权重;
候选分类确定单元94,用于根据各个条码线的倾斜角度,确定各个条码线所属的分类;根据每个分类中的候选条码线的权重之和,计算每个分类的分值,并确定出一个以上的分值峰值点,将各个分值峰值点对应的分类作为候选分类;其中,倾斜角度范围预先被划分为多个连续且互不重叠的分类,每个分类对应一个角度范围;
条形码识别单元95,用于依次按照各个候选分类对应的倾斜角度,旋转所述待处理图像使对应的候选条码线与竖直方向平行,在旋转后的图像中识别并分割出条形码区域,并对所述条形码区域进行解码获得解码信息。
其中,所述图像预处理单元91包括:转换处理子单元,用于对所述待处理图像进行灰度化处理,得到第一图像;滤波处理子单元,用于对所述第一图像进行高斯滤波降噪处理,得到第二图像;均衡化处理子单元,用于对所述第二图像进行直方图均衡化处理,得到所述灰度图像。
其中,所述线段选择单元92包括:连通域分析子单元,用于对所述灰度图像进行连通域分析,获得多个连通区域;选择处理子单元,用于从所述多个连通区域中选择出符合预设的条码线长宽比的矩形连通区域,作为候选条码线。
其中,所述候选分类确定单元94包括:分值计算子单元,用于计算每个分类中的候选条码线的权重的和值,得到该分类的分值;分值调整子单元,用于根据各个分类的分值之间的差异,确定出高分值的分类和低分值的分类;将相邻分类中的低分值的分类删除,并将该低分值的分类的分值合并至相邻分类中的高分值的分类中,以及,删除剩余的低分值分类;候选分类输出子单元,用于将剩余的各个分类的分值作为分值峰值点,以及,将剩余的各个分类作为候选分类。
其中,所述条形码识别单元95具体包括:梯度计算子单元,用于计算旋转后的图像中的每个像素点在水平方向和竖直方向的梯度之间的差值,根据所述差值的绝对值获得一梯度差值图;形态学处理单元,用于通过形态学操作,对所述梯度差值图进行处理,闭合条形码之间的缝隙并突出条形码区域,进而分割得到条形码区域。
请参照图10,本发明实施例还提供了一种条形码检测的电子设备,可以实现本发明实施例图3所示实施例的流程。所述电子设备可以是个人电脑(PC),平板电脑以及各种智能设备(包括智能眼镜或智能手机)等。如图10所示,上述电子设备10可以包括:处理器101和存储器,所述存储器具体可以包括RAM(随机存取存储器)102、ROM(只读存储器)103。这里,所述存储器中存储有计算机程序指令。在所述计算机程序指令被所述处理器运行时,使得所述处理器执行以下步骤:
将待处理图像转换为灰度图像;
确定所述灰度图像中与条码线轮廓相似的连通区域,得到候选条码线;
确定每个候选条码线相对于竖直方向的倾斜角度,并根据每个候选条码线的预设邻近区域范围内倾斜角度相近似的候选条码线的数量,计算得到每个候选条码线的权重;
根据各个条码线的倾斜角度,确定各个条码线所属的分类;根据每个分类中的候选条码线的权重之和,计算每个分类的分值,并确定出一个以上的分值峰值点,将各个分值峰值点对应的分类作为候选分类;其中,倾斜角度范围预先被划分为多个连续且互不重叠的分类,每个分类对应一个角度范围;
依次按照各个候选分类对应的倾斜角度,旋转所述待处理图像使对应的候选条码线与竖直方向平行,在旋转后的图像中识别并分割出条形码区域,并对所述条形码区域进行解码获得解码信息。
如图10所示,上述电子设备还可以包括硬盘104、输入设备105和显示设备106。具体的,输入设备105可以是具有拍摄功能或接收功能的设备,从而获取待处理图像,例如拍摄待处理图像或者接收外部设备发送的待处理图像。所述显示设备106可以是LED显示面板或显示器,可以用于显示待处理图像、条形码识别的结果以及条形码识别过程的进度等信息。
上述处理器101、RAM 102、ROM 103、硬盘104、输入设备105和显示设备106可以通过总线架构互连。总线架构可以是可以包括任意数量的互联的总线和桥。具体由处理器102代表的一个或者多个中央处理器(CPU),以及由RAM 102和ROM 103代表的一个或者多个存储器的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起,这些都是本领域所公知的,因此本文不再对其进行详细描述。
上述输入设备105,用于将网络请求数据的样本输入并保存在硬盘104中。
上述RAM 102和ROM 103,用于存储系统运行所必须的程序和数据,以及处理器计算过程中的中间结果等数据。
在本申请所提供的上述各个实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述收发方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种条形码检测方法,其特征在于,包括:
将待处理图像转换为灰度图像;
确定所述灰度图像中与条码线轮廓相似的连通区域,得到候选条码线;
确定每个候选条码线相对于竖直方向的倾斜角度,并根据每个候选条码线的预设邻近区域范围内倾斜角度相近似的候选条码线的数量,计算得到每个候选条码线的权重;
根据各个候选条码线的倾斜角度,确定各个候选条码线所属的分类;根据每个分类中的候选条码线的权重之和,计算每个分类的分值,并确定出一个以上的分值峰值点,将各个分值峰值点对应的分类作为候选分类;其中,倾斜角度范围预先被划分为多个连续且互不重叠的分类,每个分类对应一个角度范围;
依次按照各个候选分类对应的倾斜角度,旋转所述待处理图像使对应的候选条码线与竖直方向平行,在旋转后的图像中识别并分割出条形码区域,并对所述条形码区域进行解码获得解码信息;
其中,所述根据每个分类中的候选条码线的权重之和,计算每个分类的分值,并确定出一个以上的分值峰值点,将各个分值峰值点对应的分类作为候选分类的步骤,包括:
计算每个分类中的候选条码线的权重的和值,得到该分类的分值;
根据各个分类的分值之间的差异,确定出高分值的分类和低分值的分类;
将相邻分类中的低分值的分类删除,并将该低分值的分类的分值合并至相邻分类中的高分值的分类中,以及,删除剩余的低分值分类;
将剩余的各个分类的分值作为分值峰值点,以及,将剩余的各个分类作为候选分类。
2.如权利要求1所述的方法,其特征在于,所述将待处理图像转换为灰度图像的步骤,包括:
对所述待处理图像进行灰度化处理,得到第一图像;
对所述第一图像进行高斯滤波降噪处理,得到第二图像;
对所述第二图像进行直方图均衡化处理,得到所述灰度图像。
3.如权利要求1所述的方法,其特征在于,所述确定所述灰度图像中与条码线轮廓相似的连通区域,得到候选条码线的步骤,包括:
对所述灰度图像进行连通域分析,获得多个连通区域;
从所述多个连通区域中选择出符合预设的条码线长宽比的矩形连通区域,作为候选条码线。
4.如权利要求1所述的方法,其特征在于,所述在旋转后的图像中识别并分割出条形码区域的步骤,包括:
计算旋转后的图像中的每个像素点在水平方向和竖直方向的梯度之间的差值,根据所述差值的绝对值获得一梯度差值图;通过形态学操作,对所述梯度差值图进行处理,闭合条形码之间的缝隙并突出条形码区域,进而分割得到条形码区域。
5.一种条形码检测装置,其特征在于,包括:
图像预处理单元,用于将待处理图像转换为灰度图像;
线段选择单元,用于确定所述灰度图像中与条码线轮廓相似的连通区域,得到候选条码线;
权重确定单元,用于确定每个候选条码线相对于竖直方向的倾斜角度,并根据每个候选条码线的预设邻近区域范围内倾斜角度相近似的候选条码线的数量,计算得到每个候选条码线的权重;
候选分类确定单元,用于根据各个候选条码线的倾斜角度,确定各个候选条码线所属的分类;根据每个分类中的候选条码线的权重之和,计算每个分类的分值,并确定出一个以上的分值峰值点,将各个分值峰值点对应的分类作为候选分类;其中,倾斜角度范围预先被划分为多个连续且互不重叠的分类,每个分类对应一个角度范围;
条形码识别单元,用于依次按照各个候选分类对应的倾斜角度,旋转所述待处理图像使对应的候选条码线与竖直方向平行,在旋转后的图像中识别并分割出条形码区域,并对所述条形码区域进行解码获得解码信息;
其中,所述候选分类确定单元包括:
分值计算子单元,用于计算每个分类中的候选条码线的权重的和值,得到该分类的分值;
分值调整子单元,用于根据各个分类的分值之间的差异,确定出高分值的分类和低分值的分类;将相邻分类中的低分值的分类删除,并将该低分值的分类的分值合并至相邻分类中的高分值的分类中,以及,删除剩余的低分值分类;
候选分类输出子单元,用于将剩余的各个分类的分值作为分值峰值点,以及,将剩余的各个分类作为候选分类。
6.如权利要求5所述的条形码检测装置,其特征在于,所述图像预处理单元包括:
转换处理子单元,用于对所述待处理图像进行灰度化处理,得到第一图像;
滤波处理子单元,用于对所述第一图像进行高斯滤波降噪处理,得到第二图像;
均衡化处理子单元,用于对所述第二图像进行直方图均衡化处理,得到所述灰度图像。
7.如权利要求5所述的条形码检测装置,其特征在于,所述线段选择单元包括:
连通域分析子单元,用于对所述灰度图像进行连通域分析,获得多个连通区域;
选择处理子单元,用于从所述多个连通区域中选择出符合预设的条码线长宽比的矩形连通区域,作为候选条码线。
8.如权利要求5所述的条形码检测装置,其特征在于,所述条形码识别单元包括:
梯度计算子单元,用于计算旋转后的图像中的每个像素点在水平方向和竖直方向的梯度之间的差值,根据所述差值的绝对值获得一梯度差值图;
形态学处理单元,用于通过形态学操作,对所述梯度差值图进行处理,闭合条形码之间的缝隙并突出条形码区域,进而分割得到条形码区域。
9.一种条形码检测的电子设备,其特征在于,包括:
处理器;
和存储器,所述存储器中存储有计算机程序指令,
其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行以下步骤:
将待处理图像转换为灰度图像;
确定所述灰度图像中与条码线轮廓相似的连通区域,得到候选条码线;
确定每个候选条码线相对于竖直方向的倾斜角度,并根据每个候选条码线的预设邻近区域范围内倾斜角度相近似的候选条码线的数量,计算得到每个候选条码线的权重;
根据各个候选条码线的倾斜角度,确定各个候选条码线所属的分类;根据每个分类中的候选条码线的权重之和,计算每个分类的分值,并确定出一个以上的分值峰值点,将各个分值峰值点对应的分类作为候选分类;其中,倾斜角度范围预先被划分为多个连续且互不重叠的分类,每个分类对应一个角度范围;
依次按照各个候选分类对应的倾斜角度,旋转所述待处理图像使对应的候选条码线与竖直方向平行,在旋转后的图像中识别并分割出条形码区域,并对所述条形码区域进行解码获得解码信息;
其中,所述根据每个分类中的候选条码线的权重之和,计算每个分类的分值,并确定出一个以上的分值峰值点,将各个分值峰值点对应的分类作为候选分类的步骤,包括:
计算每个分类中的候选条码线的权重的和值,得到该分类的分值;
根据各个分类的分值之间的差异,确定出高分值的分类和低分值的分类;
将相邻分类中的低分值的分类删除,并将该低分值的分类的分值合并至相邻分类中的高分值的分类中,以及,删除剩余的低分值分类;
将剩余的各个分类的分值作为分值峰值点,以及,将剩余的各个分类作为候选分类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610965890.9A CN108021837B (zh) | 2016-11-04 | 2016-11-04 | 一种条形码检测方法、条形码检测装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610965890.9A CN108021837B (zh) | 2016-11-04 | 2016-11-04 | 一种条形码检测方法、条形码检测装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108021837A CN108021837A (zh) | 2018-05-11 |
CN108021837B true CN108021837B (zh) | 2021-06-22 |
Family
ID=62084524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610965890.9A Active CN108021837B (zh) | 2016-11-04 | 2016-11-04 | 一种条形码检测方法、条形码检测装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108021837B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109409162B (zh) * | 2018-10-31 | 2022-01-21 | 北京羽扇智信息科技有限公司 | 一种条形码旋转方法及装置 |
CN109784328B (zh) * | 2018-12-19 | 2022-11-08 | 新大陆数字技术股份有限公司 | 定位条码的方法、终端及计算机可读存储介质 |
CN110046530B (zh) * | 2019-03-15 | 2022-03-25 | 中科微至智能制造科技江苏股份有限公司 | 一种基于多任务目标检测的条形码倾斜矫正方法 |
CN113538449A (zh) * | 2020-04-20 | 2021-10-22 | 顺丰科技有限公司 | 一种图像矫正方法、装置、服务器及存储介质 |
CN111597849B (zh) * | 2020-05-07 | 2023-07-18 | 凌云光技术股份有限公司 | 一种可变码区域的提取方法 |
US11410417B2 (en) * | 2020-08-17 | 2022-08-09 | Google Llc | Modular system for automatic hard disk processing and verification |
CN116385742B (zh) * | 2023-03-20 | 2024-04-12 | 北京兆讯恒达技术有限公司 | 一种低质量条码图像信号提取方法和装置 |
CN118520893A (zh) * | 2024-07-22 | 2024-08-20 | 深圳精智达技术股份有限公司 | 一种应用于aoi的条形码标签识别的方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070045423A1 (en) * | 2005-09-01 | 2007-03-01 | Ncr Corporation | Optical scanner having a balanced mirrored spinner |
CN103793679A (zh) * | 2014-03-05 | 2014-05-14 | 江苏物联网研究发展中心 | 基于DaVinci技术的一维条码识别方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0962763A (ja) * | 1995-08-29 | 1997-03-07 | Tec Corp | バーコードの検出方法 |
-
2016
- 2016-11-04 CN CN201610965890.9A patent/CN108021837B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070045423A1 (en) * | 2005-09-01 | 2007-03-01 | Ncr Corporation | Optical scanner having a balanced mirrored spinner |
CN103793679A (zh) * | 2014-03-05 | 2014-05-14 | 江苏物联网研究发展中心 | 基于DaVinci技术的一维条码识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108021837A (zh) | 2018-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021837B (zh) | 一种条形码检测方法、条形码检测装置及电子设备 | |
US8744196B2 (en) | Automatic recognition of images | |
WO2014160433A2 (en) | Systems and methods for classifying objects in digital images captured using mobile devices | |
Dubská et al. | Real-time precise detection of regular grids and matrix codes | |
CN109741551B (zh) | 一种商品识别结算方法、装置及系统 | |
CN110348264A (zh) | 一种qr二维码图像校正方法及系统 | |
CN109447080B (zh) | 一种字符识别方法及装置 | |
Farhat et al. | Optical character recognition on heterogeneous SoC for HD automatic number plate recognition system | |
Lim et al. | Text segmentation in color images using tensor voting | |
Tribak et al. | QR code recognition based on principal components analysis method | |
CN110717497A (zh) | 图像相似度匹配方法、装置及计算机可读存储介质 | |
CN113158895A (zh) | 票据识别方法、装置、电子设备及存储介质 | |
Diem et al. | Skew estimation of sparsely inscribed document fragments | |
CN114187333A (zh) | 一种图像对齐方法、图像对齐装置及终端设备 | |
CN111213157A (zh) | 一种基于智能终端的快递信息录入方法及录入系统 | |
CN108090728B (zh) | 一种基于智能终端的快递信息录入方法及录入系统 | |
CN108960246B (zh) | 一种用于图像识别的二值化处理装置及方法 | |
CN114120309A (zh) | 一种仪表读数识别方法、装置及计算机设备 | |
CN113221696A (zh) | 一种图像识别方法、系统、设备及存储介质 | |
Bodnár et al. | A novel method for barcode localization in image domain | |
Shukla et al. | An approach for skew detection using hough transform | |
Aghajari et al. | A text localization algorithm in color image via new projection profile | |
CN114445807A (zh) | 一种文本区域检测方法及装置 | |
CN111753842A (zh) | 票据文本区域检测方法及装置 | |
AU2014277851A1 (en) | Detecting a gap between text columns from text line fragments |
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 |