CN106778411B - 一种条形码定位方法 - Google Patents
一种条形码定位方法 Download PDFInfo
- Publication number
- CN106778411B CN106778411B CN201611086011.1A CN201611086011A CN106778411B CN 106778411 B CN106778411 B CN 106778411B CN 201611086011 A CN201611086011 A CN 201611086011A CN 106778411 B CN106778411 B CN 106778411B
- Authority
- CN
- China
- Prior art keywords
- pixel
- value
- bar code
- pixel value
- 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
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/10544—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
- G06K7/10821—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
Abstract
本发明公开了一种条形码定位方法,包括以下步骤:撷取图像信息;提取所述图像信息中的竖条纹,获取竖条纹图像;设定阈值,将所述竖条纹图像中每一个像素的数值与该阈值比较,以得到各像素的像素值为1和0的细长竖条纹图像;以像素值1替换像素值0的方式填充所述细长竖条纹图像中的空隙部分,以获得表征条形码覆盖范围的矩形图像;以及获得所述矩形图像的长宽及起始点以定位所述条形码的范围。本发明能够简单准确地实现条形码定位。
Description
技术领域
本发明涉及图像识别域,特别涉及一种条形码定位方法。
背景技术
随着信息技术的发展,条形码已经成为可标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息的载体,在商品流通、图书管理、邮政管理、银行系统等多个领域都得到广泛的应用。条形码技术由于其准确、快速、方便、经济的特点,已经渗透到各行各业和人们的日常生活中。
利用条形码来实现对象的识别方法如下:首先利用摄像头获取条形码图像,然后通过图像处理、模式识别等技术提取出可供识别的条形码,进一步根据条形码的编码技术确定出条形码所标识的对象信息,实现交互对象的识别。然而,利用摄像头拍摄条形码时,不可避免地会摄入与条形码无关的部分,因此,如何将条形码从整幅图像中准确地定位提取出来,是后续条形码识别的前提。
发明内容
本发明的主要目的在于克服现有技术的缺陷,提供一种减少噪声的影响,更加稳定的条形码定位方法。
为达成上述目的,本发明提供一种条形码定位方法,包括以下步骤:
S1:撷取图像信息;
S2:提取所述图像信息中的竖条纹,获取竖条纹图像;
S3:设定阈值,将所述竖条纹图像中每一个像素的数值与该阈值比较,以得到各像素的像素值为1和0的细长竖条纹图像;
S4:以像素值1替换像素值0的方式填充所述细长竖条纹图像中的空隙部分,以获得表征条形码覆盖范围的矩形图像;
S5:获得所述矩形图像的长宽及起始点以定位所述条形码的范围。
优选地,步骤S1中,以彩色相机拍摄图像并转换成黑白的图像信息或以黑白相机拍摄图像获得黑白的图像信息。
优选地,骤S2包括:
S21:对所述图像信息进行Scharr算子变换,得到每一像素的竖直梯度分量和水平梯度分量;
S22:将每一所述像素的竖直梯度分量减去其水平梯度分量以得到该像素的高竖直梯度分量,其中若相减结果小于零时所述高竖直梯度分量取0;以及
S23:将每一所述像素的高竖直梯度分量作为其像素值,得到所述竖条纹图像。
优选地,步骤S22和S23之间还包括:
将所述图像信息的全部像素划分为多个像素组,每个像素组包括M×N个像素,M和N均为大于1的正整数;
将每个所述像素组中的各像素的高竖直梯度分量替换为该像素组中全部像素的高竖直梯度分量的平均值。
优选地,步骤S3包括:
S31:设定初始临界值,将小于该初始临界值的像素值替换为0,将大于等于该初始临界值的像素值取平均值,以该平均值作为所述阈值;
S32:将每一所述像素值与所述阈值比较,将小于所述阈值的像素值替换为0,将大于或等于所述阈值的像素值替换为1,以获得所述细长竖条纹图像。
优选地,步骤S4包括:
S41:设定长度为P个像素、宽度为Q个像素的矩形,P和Q均为大于等于3的奇数;
S42:对所述细长竖条纹图像中每一个像素值为1的像素,将以其为中心的该矩形范围内的所有像素的像素值替换为1。
优选地,所述步骤S42后还包括进行至少一次形态学膨胀变换的步骤。
优选地,所述步骤S5包括:
S51:对所述矩形图像的每一行像素沿水平方向遍历,对于首个像素值为1、或像素值为1且前一个像素值为0的像素从1开始计数,当像素值为0时中断计数,获得所述矩形图像的水平方向最大计数值及该水平方向最大计数值所对应的像素位置;
S52:对所述矩形图像的每一列像素沿竖直方向遍历,对于首个像素值为1、或像素值为1且前一个像素值为0的像素从1开始计数,当像素值为0时中断计数,获得所述矩形图像的竖直方向最大计数值及该竖直方向最大计数值所对应的像素位置;以及
S53:根据上述水平方向最大计数值及该水平方向最大计数值所对应的像素位置、竖直方向最大计数值及该竖直方向最大计数值所对应的像素位置获得所述矩形图像的长宽及起始点。
本发明先通过阈值滤除图像噪声获得细长的竖条纹图像,再对细长的竖条纹图像中的孔隙做填充得到矩形图像,从而能够简便地确定条形码方框的位置,提高条形码区域定位的稳定性。
附图说明
图1所示为本发明一实施例的条形码定位方法的流程图;
图2a和2b所示为本发明一实施例的条形码定位方法中步骤S4的示意图。
具体实施方式
为使本发明的内容更加清楚易懂,以下结合说明书附图,对本发明的内容作进一步说明。当然本发明并不局限于该具体实施例,本领域内的技术人员所熟知的一般替换也涵盖在本发明的保护范围内。
请参见图1,本发明的条形码定位方法包括以下步骤:
S1:撷取图像信息。
本步骤中,通过相机摄像头拍摄图像,得到图像信息。相机可以是彩色相机,也可以是黑白相机。当采用彩色相机拍摄图像时,要将拍摄的图像信息转换成黑白的图像信息;当采用黑白相机拍摄图像时,可直接获取黑白的图像信息。
S2:提取图像信息中的竖条纹,获取竖条纹图像。
本步骤中,首先对图像信息进行Scharr算子变换,得到图像中每一个像素的竖直梯度分量和水平梯度分量。然后,用每一个像素的竖直梯度分量减去这个像素的水平梯度分量,可以得到这个像素的高竖直梯度分量,通过这一步骤可以去除水平梯度分量的干扰、强化竖直梯度分量。其中,若竖直梯度分量与水平梯度分量的相减结果小于0,则还是取高竖直梯度分量为0。此时,每个像素的高竖直梯度分量范围仍在0~255之内。在一优选实施例中,在得到每个像素的高竖直梯度分量以后,还包括一个均值模糊步骤。例如将全部像素划分为多个像素组,每个像素组有相同个数的像素,将每个像素组中每个像素的高竖直梯度分量替换为该像素组全部像素的高竖直梯度分量的平均值。接着,将每一个像素的高竖直梯度分量作为这个像素的像素值,得到一个竖条纹图像。此时,竖条纹图像中每个像素的像素值仍在0~255范围内。
S3:设定阈值,将竖条纹图像中每一个像素的数值与该阈值比较,以得到各像素的像素值为1和0的细长竖条纹图像。
本步骤中,先设定一个数值较小的初始临界值,将小于该初始临界值的像素值替换为0,对于其余大于等于该初始临界值的像素值则求取平均值,将这个平均值设定为阈值。然后,将每一个像素值与阈值比较,将小于阈值的像素值替换为0,将大于或等于阈值的像素值替换为1,就从而获得细长竖条纹图像。通过先设定较小的初始临界值,能够筛除一部分图像噪声,对于剩下的图像信息再以其平均值设定阈值并进行基于阈值比较的筛选,最终能够得到更为准确的与条形码相关的细长竖条纹图像。
S4:以像素值1替换像素值0的方式填充细长竖条纹图像中的空隙部分,以获得表征条形码覆盖范围的矩形图像。
本步骤中,可通过矩形扩展的方式填充细长竖条纹图像中的孔隙部分。具体来说,设定长度为P个像素、宽度为Q个像素的矩形(P和Q均为大于等于3的奇数),然后对细长竖条纹图像中每一个像素值为1的像素,将以其为中心的该矩形范围内的所有像素的像素值替换为1。如图2a所示,在一实施例中,方框内为长度为5个像素、宽度为3个像素的矩形。对于像素值为1的像素A来说,将围绕其周围的14个像素也均转换为1。对于每个像素值为1的像素均进行上述的小矩形填充,最终可以将细长竖条纹之间的空隙填充,并得到一个矩形图像。矩形图像的区域范围也即是条形码的大致区域范围。在另一优选实施例中,在进行小矩形填充后,还可以再进行形态学的膨胀变换,膨胀次数可根据实际需求设定,一般选取的次数为5次膨胀。
S5:获得矩形图像的长宽及起始点以定位条形码的范围。
由于矩形图像的范围大致等于条形码的范围,因此定位矩形图像的长宽及起始点也就定位了条形码的范围和起始点。本步骤中,需对矩形图像的每一行像素沿水平方向遍历,对矩形图像的每一列像素沿竖直方向遍历。具体来说,在对每一行沿水平方向遍历,例如从左往右遍历时,对于该行沿遍历方向首个像素值为1、或像素值为1且前一个像素值为0的像素从1开始计数,当像素值为0时中断计数,获得矩形图像的水平方向最大计数值及该水平方向最大计数值所对应的像素位置。举例来说,假设第i行第j个像素是第一个像素值为1的像素,则其计数为1,若该行第j+1个像素的像素值也是1,那么继续计数为2,一直到第j+n个像素的像素值为1,那么计数为n+1;若第j+n+1个像素的像素值为0,那么计数中断为0;若第j+n+2个像素的像素值为1,那么重新从1开始计数。以此类推,直到这一行结束。遍历完所有行之后,得以得到整个矩形图像各行中水平方向最大的计数值pixel_max_hor,以及这个计数值pixel_max_hor所对应的像素的位置,例如为第i行的第j个像素(i,j),那么条形码区域的长度为pixel_max_hor个像素单位长度。同样的,对每一列沿竖直方向遍历时,例如从上往下,对于遍历方向首个像素值为1、或像素值为1且前一个像素值为0的像素从1开始计数,当像素值为0时中断计数,获得矩形图像的竖直方向最大计数值及该竖直方向最大计数值所对应的像素位置。假设竖直方向最大计数值为pixel_max_ver,以及这个计数值pixel_max_ver所对应的像素的位置,例如为第k列的第l个像素(l,k),那么条形码区域的宽度为pixel_max_ver个像素单位长度。最终,根据上述水平方向最大计数值及该水平方向最大计数值所对应的像素位置、竖直方向最大计数值及该竖直方向最大计数值所对应的像素位置获得矩形图像,即条形码区域的长宽和起始点。条形码区域的起始点为(j-pixel_max_hor,k-pixel_max_ver),条形码区域长宽范围为:长度方向从j-pixel_max_hor至j,宽度方向从k-pixel_max_ver至k。
综上所述,本发明先通过优化的阈值滤除图像噪声方法获得细长的竖条纹图像,再对细长的竖条纹图像中的孔隙做填充得到矩形图像,从而能够简便地确定条形码方框的位置,提高条形码区域定位的稳定性。
虽然本发明已以较佳实施例揭示如上,然所述诸多实施例仅为了便于说明而举例而已,并非用以限定本发明,本领域的技术人员在不脱离本发明精神和范围的前提下可作若干的更动与润饰,本发明所主张的保护范围应以权利要求书所述为准。
Claims (7)
1.一种条形码定位方法,其特征在于,包括以下步骤:
S1:撷取图像信息;
S2:提取所述图像信息中的竖条纹,获取竖条纹图像;
S3:设定阈值,将所述竖条纹图像中每一个像素的数值与该阈值比较,以得到各像素的像素值为1和0的细长竖条纹图像;
S4:以像素值1替换像素值0的方式填充所述细长竖条纹图像中的空隙部分,以获得表征条形码覆盖范围的矩形图像;以及
S5:获得所述矩形图像的长宽及起始点以定位所述条形码的范围;
其中,步骤S2包括:
S21:对所述图像信息进行Scharr算子变换,得到每一像素的竖直梯度分量和水平梯度分量;
S22:将每一所述像素的竖直梯度分量减去其水平梯度分量以得到该像素的高竖直梯度分量,其中若相减结果小于零时所述高竖直梯度分量取0;以及
S23:将每一所述像素的高竖直梯度分量作为其像素值,得到所述竖条纹图像。
2.根据权利要求1所述的条形码定位方法,其特征在于,步骤S1中,以彩色相机拍摄图像并转换成黑白的图像信息或以黑白相机拍摄图像获得黑白的图像信息。
3.根据权利要求1所述的条形码定位方法,其特征在于,步骤S22和S23之间还包括:
将所述图像信息的全部像素划分为多个像素组,每个像素组包括M×N个像素,M和N均为大于1的正整数;
将每个所述像素组中的各像素的高竖直梯度分量替换为该像素组中全部像素的高竖直梯度分量的平均值。
4.根据权利要求1所述的条形码定位方法,其特征在于,步骤S3包括:
S31:设定初始临界值,将小于该初始临界值的像素值替换为0,将大于等于该初始临界值的像素值取平均值,以该平均值作为所述阈值;
S32:将每一所述像素值与所述阈值比较,将小于所述阈值的像素值替换为0,将大于或等于所述阈值的像素值替换为1,以获得所述细长竖条纹图像。
5.根据权利要求1所述的条形码定位方法,其特征在于,步骤S4包括:
S41:设定长度为P个像素、宽度为Q个像素的矩形,P和Q均为大于等于3的奇数;
S42:对所述细长竖条纹图像中每一个像素值为1的像素,将以其为中心的该矩形范围内的所有像素的像素值替换为1。
6.根据权利要求5所述的条形码定位方法,其特征在于,所述步骤S42后还包括进行至少一次形态学膨胀变换的步骤。
7.根据权利要求1所述的条形码定位方法,其特征在于,所述步骤S5包括:
S51:对所述矩形图像的每一行像素沿水平方向遍历,对于首个像素值为1、或像素值为1且前一个像素值为0的像素从1开始计数,当像素值为0时中断计数,获得所述矩形图像的水平方向最大计数值及该水平方向最大计数值所对应的像素位置;
S52:对所述矩形图像的每一列像素沿竖直方向遍历,对于首个像素值为1、或像素值为1且前一个像素值为0的像素从1开始计数,当像素值为0时中断计数,获得所述矩形图像的竖直方向最大计数值及该竖直方向最大计数值所对应的像素位置;以及
S53:根据上述水平方向最大计数值及该水平方向最大计数值所对应的像素位置、竖直方向最大计数值及该竖直方向最大计数值所对应的像素位置获得所述矩形图像的长宽及起始点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611086011.1A CN106778411B (zh) | 2016-11-30 | 2016-11-30 | 一种条形码定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611086011.1A CN106778411B (zh) | 2016-11-30 | 2016-11-30 | 一种条形码定位方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106778411A CN106778411A (zh) | 2017-05-31 |
CN106778411B true CN106778411B (zh) | 2019-06-21 |
Family
ID=58914774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611086011.1A Active CN106778411B (zh) | 2016-11-30 | 2016-11-30 | 一种条形码定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106778411B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336938A (zh) * | 2013-06-05 | 2013-10-02 | 华南理工大学 | 一种基于一维条形码图像的识别方法 |
CN104268499A (zh) * | 2014-10-10 | 2015-01-07 | 南京大树智能科技股份有限公司 | 一种带条码商品的条码标记检测方法 |
CN104636706A (zh) * | 2015-03-04 | 2015-05-20 | 深圳市金准生物医学工程有限公司 | 一种基于梯度方向一致性复杂背景条码图像自动分割方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895116B2 (en) * | 2001-06-07 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Automatically extracting graphical bar codes |
-
2016
- 2016-11-30 CN CN201611086011.1A patent/CN106778411B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336938A (zh) * | 2013-06-05 | 2013-10-02 | 华南理工大学 | 一种基于一维条形码图像的识别方法 |
CN104268499A (zh) * | 2014-10-10 | 2015-01-07 | 南京大树智能科技股份有限公司 | 一种带条码商品的条码标记检测方法 |
CN104636706A (zh) * | 2015-03-04 | 2015-05-20 | 深圳市金准生物医学工程有限公司 | 一种基于梯度方向一致性复杂背景条码图像自动分割方法 |
Non-Patent Citations (2)
Title |
---|
复杂图像背景下的一维条码定位研究;方路平 等;《计算机应用与软件》;20110831;第28卷(第8期);第155-157页 |
复杂背景中条码检测定位技术的研究;刘宁钟;《南京航空航天大学学报》;20050228;第37卷(第1期);第65-69页 |
Also Published As
Publication number | Publication date |
---|---|
CN106778411A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840519B (zh) | 一种自适应的智能单据识别录入装置及其使用方法 | |
CN106960208B (zh) | 一种仪表液晶数字自动切分和识别的方法及系统 | |
US20180096216A1 (en) | Character segmentation and recognition method | |
CN107045634B (zh) | 一种基于最大稳定极值区域与笔画宽度的文本定位方法 | |
CN109784326A (zh) | 一种基于深度学习的车辆底盘检测方法 | |
CN104239909B (zh) | 一种图像的识别方法和装置 | |
CN102024144A (zh) | 集装箱箱号自动识别方法 | |
CN108846401A (zh) | 商品检测终端、方法、系统以及计算机设备、可读介质 | |
US8290268B2 (en) | Segmenting printed media pages into articles | |
CN105930159A (zh) | 一种基于图像的界面代码生成的方法及系统 | |
CN110781839A (zh) | 一种基于滑窗的大尺寸图像中小目标识别方法 | |
CN110378332A (zh) | 一种集装箱码头箱号和车号识别方法及系统 | |
DE102015209963A1 (de) | Bildbearbeitungsverfahren und Systeme zur Barcode- und/oder Produktkennzeichen-Erkennung | |
CN111476109A (zh) | 票据处理方法、票据处理装置和计算机可读存储介质 | |
CN107423732A (zh) | 基于Android平台的车辆VIN识别方法 | |
CN103824373B (zh) | 一种票据图像金额分类方法及系统 | |
CN108830133A (zh) | 合同影像图片的识别方法、电子装置及可读存储介质 | |
CN102194123A (zh) | 表格模板定义方法和装置 | |
CN116704516B (zh) | 一种用于水溶肥料包装的视觉检测方法 | |
CN112446262A (zh) | 文本分析方法、装置、终端和计算机可读存储介质 | |
CN109543613A (zh) | 基于tof成像的车辆行驶速度及车牌识别系统及方法 | |
CN111598076B (zh) | 一种标签图像中日期检测处理方法及装置 | |
CN114511718A (zh) | 一种建筑施工用物料智能管理方法及系统 | |
CN106156691A (zh) | 复杂背景图像的处理方法及其装置 | |
CN106778411B (zh) | 一种条形码定位方法 |
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 |