CN113033234A - 条码检测方法及系统 - Google Patents

条码检测方法及系统 Download PDF

Info

Publication number
CN113033234A
CN113033234A CN202010051373.7A CN202010051373A CN113033234A CN 113033234 A CN113033234 A CN 113033234A CN 202010051373 A CN202010051373 A CN 202010051373A CN 113033234 A CN113033234 A CN 113033234A
Authority
CN
China
Prior art keywords
image
pane
gradient
gray
scale value
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.)
Granted
Application number
CN202010051373.7A
Other languages
English (en)
Other versions
CN113033234B (zh
Inventor
陈轩盈
陈建铭
吴铭锋
江弘志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Weltrend Semiconductor Inc
Original Assignee
Weltrend Semiconductor Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Weltrend Semiconductor Inc filed Critical Weltrend Semiconductor Inc
Publication of CN113033234A publication Critical patent/CN113033234A/zh
Application granted granted Critical
Publication of CN113033234B publication Critical patent/CN113033234B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image

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)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

本发明提供一种条码检测方法及系统。该条码检测方法包含取得图像中每一像素的图像梯度,根据图像梯度,产生每一像素的梯度相位角度及梯度能量强度,将每一像素的梯度能量强度二值化以产生二值化图像,在图像上产生窗格,将窗格中将二值化图像进行垂直及水平取样,以产生垂直与水平方向上的灰阶值变化次数,根据垂直及水平方向上的灰阶值变化次数定位最密集翻转区域,根据最密集翻转区域定位核心条码区域,提取核心条码区域中像素的梯度相位角度以产生梯度相位角度分布,根据梯度相位角度分布产生条码的格式检测结果,根据条码的格式检测结果定位条码的图像区域。

Description

条码检测方法及系统
技术领域
本发明公开一种条码检测方法及条码检测系统,尤其涉及一种具高速检测能力的低复杂度的条码检测方法及条码检测系统。
背景技术
随着科技进步,各种条码逐渐被应用在日常生活中,并慢慢地取代繁杂且易错误的文字信息。例如,一维条码将宽度不等的多个黑条(Bar)和白条(Space),按照一定的编码规则(即黑白宽度比例)排列,用以表达一组信息的图形识别元。常见的一维条码是由反射率相差很大的黑条和白条排成的平行线图案。二维条码则可为矩形,可视为将一维条码的图像往另一个轴向延伸的图像,因此可带有比一维条码更多的信息量。条码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到了广泛的应用。
一般而言,要将条码识别以产生具有意义的信息需要两个步骤。第一个步骤称为条码取样步骤。条码取样步骤可以利用相机、扫描器、激光识别装置等光元件提取条码的图案。第二个步骤称为解码步骤。解码步骤可以利用查询表或是解码器将取样后的条码转换为有意义的信息。在一般解码步骤的前置步骤中,条码的存在性以及条码的格式(一维或是二维)需要先被检测出来。然而,一般由相机所拍的图像中,检测条码的存在性与格式必须将图像的像素一列一列地扫描。当图像的尺寸或解析度很高时,将非常耗时。并且,当条码检测失败时,上述逐列扫描的程序又必须再一次地执行,因此这种效率低且耗时的检测方式将会浪费系统资源。
发明内容
本发明一实施例提出一种条码检测方法,包含相机取得图像,取得该图像中的每一像素的水平图像梯度及垂直图像梯度,根据该水平图像梯度及该垂直图像梯度,产生该每一像素的梯度相位角度及梯度能量强度,将该每一像素的该梯度能量强度二值化,以产生二值化图像,在该图像中产生窗格,在该窗格内将该二值化图像以N个像素为间隔的V个垂直扫描线进行垂直取样以统计该二值化图像在垂直方向上的V个灰阶值变化次数,在该窗格内将该二值化图像以M个像素为间隔的H个水平扫描线进行水平取样以统计该二值化图像在水平方向上的H个灰阶值变化次数,若该垂直方向上的V个灰阶值变化次数高于第一预定值及该水平方向上的H个灰阶值变化次数高于第二预定值,则判定该窗格所覆盖的区域为一最密集翻转区域,若该窗格所覆盖的区域被判定为该最密集翻转区域,则扩张该窗格至该窗格覆盖核心条码区域,提取该核心条码区域中的多个像素的多个梯度相位角度以产生梯度相位角度分布,根据该梯度相位角度分布产生该条码的格式检测结果,及根据该格式检测结果扩张该窗格至该窗格完全覆盖该条码。
本发明另一实施例提出一种条码检测系统,包含相机、处理器及存储器。相机用以取得图像。该处理器取得该图像中每一像素的水平图像梯度及垂直图像梯度,根据该水平图像梯度及该垂直图像梯度,产生该每一像素的梯度相位角度及梯度能量强度,将该每一像素的该梯度能量强度二值化,以产生二值化图像,在该图像中产生窗格,在该窗格内将该二值化图像以N个像素为间隔的V个垂直扫描线进行垂直取样,以统计该二值化图像在垂直方向上的V个灰阶值变化次数,在该窗格内将该二值化图像以M个像素为间隔的H个水平扫描线进行水平取样,以统计该二值化图像在水平方向上的H个灰阶值变化次数,若该垂直方向上的V个灰阶值变化次数高于第一预定值及该水平方向上的H个灰阶值变化次数高于第二预定值,则判定该窗格所覆盖的区域为最密集翻转区域,若该窗格所覆盖的区域被判定为该最密集翻转区域,则扩张该窗格至该窗格覆盖核心条码区域,提取该核心条码区域中的多个像素的多个梯度相位角度,以产生梯度相位角度分布,根据该梯度相位角度分布产生该条码的格式检测结果,及根据该格式检测结果扩张该窗格至该窗格完全覆盖该条码。
附图说明
图1是本发明的实施例条码检测系统的示意图。
图2是实施例中取得图像中每一像素的水平图像梯度及垂直图像梯度的示意图。
图3实施例中是图像二值化的示意图。
图4是实施例中二值化图像中窗格的示意图。
图5是在窗格中进行水平取样以及垂直取样的示意图。
图6是窗格的移动示意图。
图7是窗格覆盖核心条码区域的示意图。
图8是梯度相位决策边界的示意图。
图9是梯度相位角度分布包含一个峰度分布的示意图。
图10是梯度相位角度分布包含两个峰度分布的示意图。
图11是窗格定位条码区域的示意图。
图12是图1的条码检测系统执行条码检测方法的流程图。
【符号说明】
100 条码检测系统
10 相机
11 处理器
12 存储器
BC 条码
A、B 像素
IMG 图像
R 背景区域
BIMG 二值化图像
BBC 二值化条码
SH1至SH3 水平扫描线
SV1至SV3 垂直扫描线
SW 窗格
DB1至DB8 梯度相位决策边界
C、C1及C2 峰度分布
PK、PK1及PK2 峰值
Φ、Φ1及Φ2 梯度相位角度
S1202至S1226 步骤
具体实施方式
图1是本发明的实施例条码检测系统100的示意图。条码检测系统100可应用于检测一维条码以及二维条码,常见的一维条码有EAN/UPC,ISBN,Code 39,Code 93,Code 128等,常见的二维条码有矩阵图码(quick response code,QR Code)、PDF417条码、或是数据矩阵(data matrix)等。条码检测系统100包含相机10、处理器11及存储器12。相机10用以提取图像。相机10可包含任何图像提取装置。例如,相机10可内建镜头以及感光元件,用以提取光信号,并将光信号进行处理以产生图像。相机10所提取的图像可包含条码图像。处理器11耦接于相机10,用以处理图像,以产生条码的格式检测结果。处理器11可为任何形式的处理装置,例如中央处理器、微处理器、逻辑运算单元或是可编程芯片等等。处理器11也可以判断条码图像是否可被检测。存储器12耦接于处理器11,用以缓存图像处理数据。存储器12可为任何形式的记忆装置,例如硬盘、随机存取存储器(random access memory,RAM)或是非易失性存储器(non-volatile memory)等等。存储器12所存储的图像处理数据可为后文提及的水平图像梯度、垂直图像梯度、水平方向的灰阶值变化次数、垂直方向的灰阶值变化次数、多个梯度相位决策边界等数据。条码检测系统100执行条码检测方法的步骤以及原理将在后文详述。
图2是取得图像IMG中每一像素的水平图像梯度及垂直图像梯度的示意图。如前述提及,相机10具有图像提取的能力。因此,当处理器11接收到相机10所提取的图像IMG后,可以取得图像IMG中每一像素的水平图像梯度及垂直图像梯度。例如,处理器11可以利用索伯(Sobel)算法,以水平矩阵模板及垂直矩阵模板对图像的每一像素的亮度做卷积(convolution)运算,以产生每一像素的水平图像梯度及垂直图像梯度。然而,处理器11也可以仅针对图像IMG的一个区域内的每一像素的水平图像梯度及垂直图像梯度进行计算,以降低复杂度。例如,图像IMG的区域可为图像IMG的某特定区域、图像IMG靠近中央的区域、或是将图像IMG的边缘裁切后的子区域等等。任何合理的区域范围以及位置的调整都属于本发明所公开的范围。在其他实施例中也可以针对小于图像IMG范围的一个区域进行梯度计算,以降低复杂度。在实际应用时,水平矩阵模板及垂直矩阵模板可为方阵(squarematrix),用以与图像中每一像素的数据向量做线性组合,再以此计算水平图像梯度及垂直图像梯度。在图2中,Y轴为垂直轴,X轴为水平轴。像素A位于条码BC之外,因此像素A附近的颜色并无太大变化。因此,像素A所计算出来的水平梯度以及垂直梯度A(▽XA,▽YA)都是很小的数值。然而,像素B位于条码BC之内,因此像素B附近的颜色可能会有变化。因此,像素B所计算出来的水平梯度以及垂直梯度B(▽XB,▽YB)中,至少一个会是较大的数值,依此类推。在处理器11将图像IMG中所有像素的水平梯度以及垂直梯度都计算完成后,可将所有像素的水平梯度以及垂直梯度数据存储在存储器12中。接着,处理器11可以依据每一像素的水平图像梯度及垂直图像梯度,产生每一像素的梯度相位角度及梯度能量强度。举例而言,当某个像素的垂直图像梯度非常高,但是水平图像梯度趋近于零,表示某个像素的梯度相位角度趋近于π/2,像素附近的图像边缘近似垂直分布。反之,当某个像素的水平图像梯度非常高,但是垂直图像梯度趋近于零,表示某个像素的梯度相位角度趋近于0,像素附近的图像边缘近似水平分布。并且,每一像素的梯度能量强度可视为利用引数为水平图像梯度及垂直图像梯度的非线性函数推导出来。梯度能量强度也会与梯度图像的亮度有关。梯度图像亮度越亮的像素点表示其梯度能量强度越强,梯度图像亮度越暗的像素点表示其梯度能量强度越弱。处理器11也可以将图像IMG中所有像素的梯度相位角度以及梯度能量强度存储在存储器12中。
图3是实施例中图像二值化的示意图。处理器11可以产生图像IMG中所有像素的梯度能量强度。接着,依据阈值与每一像素的比较结果,将图像IMG中的每一像素对应至第一灰阶值或第二灰阶值。例如,处理器11可以设定一个阈值,当某个像素的梯度能量强度比阈值高,则将某个像素对应至第一灰阶值。当某个像素的梯度能量强度比阈值低,则将某个像素对应至第二灰阶值。第一灰阶值可为趋近于灰阶值为255的白色,而第二灰阶值可为趋近于灰阶值为0的黑色。利用上述的二值化程序,处理器11可以将图2中的图像IMG转换为只有两种颜色的二值化图像BIMG。例如,在图3的二值化图像BIMG中,二值化条码BBC只包含黑白两种颜色,而在二值化条码BBC之外的区域R为背景区域,可为噪声图像。藉由如前述的二值化程序后,可以降低噪声的影响量,增加条码检测的可靠度。
图4是实施例中二值化图像BIMG中窗格SW的示意图。处理器11可在二值化图像BIMG中产生窗格(sliding window)SW,窗格SW的初始位置可为图像BIMG的边缘,例如左上角,或随机在图像BIMG中的任一位置。窗格SW的尺寸可为2x2,4x4,5x5像素等正方形的窗格或可为长方形的窗格,根据需要来调整。
图5是在窗格SW中进行水平取样以及垂直取样的示意图。为了降低运算时间以及计算复杂度,条码检测系统100可采用间隔取样的机制,条码检测系统100可以使用以N个像素为间隔的V个垂直扫描线进行取样,以统计二值化图像BIMG在窗格SW内在垂直方向上的V个灰阶值变化次数。举例而言,相邻的垂直扫描线可以间隔2~4个像素(N为2~4之间)。在窗格SW内可用垂直扫描线SV1至SV3进行取样,以统计二值化图像BIMG在窗格SW内在垂直方向上的灰阶值变化次数。同理,条码检测系统100可以使用以M个像素为间隔的H个水平扫描线进行取样,以统计二值化图像BIMG在窗格SW内在水平方向上的H个灰阶值变化次数。举例而言,相邻的水平扫描线可以间隔2~4个像素(M为2~4之间)。在窗格SW内可用水平扫描线SH1至SH3进行取样,以统计二值化图像BIMG在窗格SW内在水平方向上的灰阶值变化次数。然而,本发明却不以此为限制。由于条码检测系统100引入了间隔取样的机制,因此可以有效地降低计算复杂度以及缩短操作时间。并且,N、M、V、H也可以依据不同的需求调整。例如需要高解析度的检测质量下,垂直取样间隔N以及水平取样间隔M可以减少,以增加垂直扫描线的数量V以及水平扫描线的数量H。或者,两相邻的垂直扫描线的取样间隔N以及两相邻的水平扫描线的水平取样间隔M也可以动态地调整。例如,总数为V的垂直扫描线中,可以调整垂直扫描线的密度分布,以使两相邻的垂直扫描线的取样间隔N是可变的参数。并且,两相邻的水平扫描线的水平取样间隔M可以动态地调整。例如,总数为H的水平扫描线中,可以调整水平扫描线的密度分布,以使两相邻的水平扫描线的取样间隔M是可变的参数。因此,藉由适当调整取样参数,条码检测系统100将具有很高的操作弹性。
二值化图像BIMG只会有较亮的第一灰阶值以及较暗的第二灰阶值。因此,单一条扫描线所取样的一列或一行像素的颜色数据,可包含此列或此行像素的颜色变化。例如,水平扫描线SH1、SH2、SH3扫描到窗格SW内二值化条码BBC,因此检测到灰阶值变化的状态,水平扫描线SH1、SH2、SH3所对应的灰阶值变化次数分别为2、4、3,以SH1(2)、SH2(4)、SH3(3)表示。类似地,垂直扫描线SV1至SV3到窗格SW内二值化条码BBC,因此检测到灰阶值变化的状态,垂直扫描线SV1、SV2、SV3所对应的灰阶值变化次数分别为4、4、5,以SV1(4)、SV2(4)、SV3(5)表示。更一般性地说,二值化图像BIMG在水平方向上的H个灰阶值变化次数,为二值化图像BIMG在水平方向上,以H个水平扫描线进行水平取样的H个第一灰阶值与第二灰阶值相互转换的次数。类似地,二值化后的图像在垂直方向上的V个灰阶值变化次数,为二值化后的图像在垂直方向上,以V个垂直扫描线进行垂直取样的V个第一灰阶值与第二灰阶值相互转换的次数。因此二值化图像BIMG在窗格SW内在水平方向上的灰阶值变化次数则为水平扫描线SH1、SH2、SH3所对应的灰阶值变化次数的总和,即为2+4+3=9;二值化图像BIMG在窗格SW内在垂直方向上的灰阶值变化次数则为垂直扫描线SV1、SV2、SV3所对应的灰阶值变化次数的总和,即为4+4+5=13。在窗格SW内,若垂直方向上的V个灰阶值变化次数高于第一预定值及水平方向上的H个灰阶值变化次数高于第二预定值,则判定窗格SW所覆盖的区域为最密集翻转区域,否则移动窗格SW以覆盖另一区域。例如若第一预定值及第二预定值皆为8,则窗格SW所覆盖的区域可认定为最密集翻转区域;而若第一预定值及第二预定值皆为9,则由于水平方向上的灰阶值变化次数为9,没有大于第二预定值,因此窗格SW所覆盖的区域可认定并非为最密集翻转区域。
图6是窗格SW的移动示意图。窗格SW可在图像BIMG中以任意方式移动,举例而言,窗格SW可水平移动W个像素和/或垂直移动Z个像素,W、Z可为任何大于等于1的正整数。当窗格SW移至下一区域,便可重复上述的垂直扫描线及水平扫描线的取样以统计二值化图像BIMG在窗格SW内的灰阶值变化次数。若垂直方向上的V个灰阶值变化次数高于第一预定值及水平方向上的H个灰阶值变化次数高于第二预定值,则判定窗格SW所覆盖的区域为最密集翻转区域,否则移动窗格SW以覆盖另一区域。重复上述的方法直到窗格SW所覆盖的区域为最密集翻转区域。举例而言,根据图像参数,窗格SW可向上移动5像素,并再执行取样,若取样结果未超过第一预定值及第二预定值,则窗格SW再向上移动5像素。或者可根据图像参数,使窗格SW向右移动3像素并再执行取样,以此类推。
图7是窗格SW覆盖核心条码区域的示意图。在最密集翻转区域被确认后,窗格SW可开始扩张。窗格SW可先沿水平方向扩张,之后,在窗格SW的扩张区域内统计二值化图像BIMG在垂直方向上的灰阶值变化次数,若在扩张区域内,二值化图像BIMG在垂直方向上的灰阶值变化次数高于预定值,则再次往水平方向扩张窗格SW,重复执行上述步骤直到扩张区域内的垂直方向上的灰阶值变化次数低于预定值时,即可停止扩张。同理,窗格SW可再沿垂直方向扩张,之后,在窗格SW的扩张区域内统计二值化图像BIMG在水平方向上的灰阶值变化次数,若在扩张区域内,二值化图像BIMG在水平方向上的灰阶值变化次数高于预定值,则再次往垂直方向扩张窗格SW。重复执行上述步骤直到扩张区域内的水平方向上的灰阶值变化次数低于预定值时,即可停止扩张。如图7所示,若灰阶值变化次数的预定值为10,水平扫描线SH1所对应的变化次数为8,水平扫描线SH2所对应的变化次数为6,皆低于预定值,窗格SW便停止往垂直扩张。垂直扫描线SV1所对应的变化次数为9,垂直扫描线SV2所对应的变化次数为9,皆低于预定值,窗格SW便停止往水平扩张。窗格SW所覆盖的区域即为核心条码区域。
图8是梯度相位决策边界的示意图。在条码检测系统100中,可以预先设定P个梯度相位决策边界(Decision Boundary),其中相邻的梯度相位决策边界相差2π/P。例如,当P为8时,条码检测系统100可以预先设定8个梯度相位决策边界,以DB1至DB8表示。梯度相位决策边界DB1对应角度为0的相位、梯度相位决策边界DB2对应角度为2π/8的相位、梯度相位决策边界DB3对应角度为4π/8的相位,依此类推。因此,处理器11可将窗格SW所覆盖区中的所有像素的多个梯度相位角度,利用P个梯度相位决策边界以产生多个梯度相位决策角度。换句话说,窗格SW所覆盖区中的每一像素的梯度相位角度,将会被量化为P个梯度相位决策边界中的其中一个梯度相位决策边界。因此,处理器11产生的多个梯度相位决策角度只会有P种可能的组合。在此,由于二维条码的转折点对应π/2,因此P为大于等于4的偶数,如此才能有效地将窗格SW所覆盖区域中二维条码的梯度相位角度特性量化。
图9是梯度相位角度分布仅包含一个峰度(Kurtosis)分布C的示意图。如前述,处理器11可将窗格SW所覆盖区域中的所有像素的多个梯度相位角度,利用P个梯度相位决策边界以产生多个梯度相位决策角度。接着,可依此产生梯度相位角度分布。例如,可将窗格SW所覆盖区域中的所有像素对应的多个梯度相位决策角度(有P种角度的可能性)进行统计分析,统计当梯度相位决策角度为0(对应梯度相位决策边界DB1)时的数量,统计当梯度相位决策角度为2π/8(对应梯度相位决策边界DB2)时的数量,依此类推。最后产生如图8所示的梯度相位角度分布。若梯度相位角度分布仅包含一个峰度分布C,处理器11可产生条码为一维条码的格式检测结果,其原理描述于下。由于一维条码为单一轴向的多个黑条(Bar)以及白条(Space)所组成,因此其图像的梯度相位角度是单一的角度。在一维条码未被旋转的情况下,其梯度相位角度应为π/2。然而,当相机10提取包含一维条码的图像时,可能一维条码的图像会被旋转。然而,若是旋转角度为θ,则一维条码的梯度相位角度应为π/2+θ。因此,在图9中,若梯度相位角度分布仅包含一个峰度分布C,且峰值PK趋近于Φ,则可判断扫描的条码为一维条码,甚至可以计算出旋转角度θ为Φ-π/2。
图10是梯度相位角度分布包含两个峰度分布C1及C2的示意图。如前述提及,处理器11可将窗格SW所覆盖区域中的所有像素的多个梯度相位角度,利用P个梯度相位决策边界以产生多个梯度相位决策角度。接着,处理器11可依此产生梯度相位角度分布。例如,处理器11可将窗格SW所覆盖区域中的所有像素对应的多个梯度相位决策角度(有P种角度的可能性)进行统计分析。例如,可依据窗格SW所覆盖区域中的所有像素对应的多个梯度相位决策角度,统计当梯度相位决策角度为0(对应梯度相位决策边界DB1)时的数量,统计当梯度相位决策角度为2π/8(对应梯度相位决策边界DB2)时的数量,依此类推。最后产生如图10所示的梯度相位角度分布。若梯度相位角度分布仅包含两个峰度分布C1及C2,则产生条码为二维条码的格式检测结果,其原理描述于下。由于二维条码为双轴向的多个黑以及白色的图像区块所组成,因此其图像的梯度相位角度是两个角度。在二维条码未被旋转的情况下,其梯度相位角度的集合应包含0以及π/2。然而,当相机10提取包含二维条码的图像时,可能二维条码的图像会被旋转。然而,若是旋转角度为θ,则二维条码的梯度相位角度的集合应包含θ以及π/2+θ。因此,在图10中,若梯度相位角度分布仅包含两个峰度分布C1及C2,峰值PK1以及PK2分别趋近于Φ1以及Φ2,且Φ1以及Φ2相差π/2时,则可判断扫描的条码为二维条码,甚至可以计算出旋转角度θ为Φ1。
图11是窗格定位条码区域的示意图。当条码的格式检测结果产生后,可根据格式检测结果再次扩张窗格SW所覆盖的区域至完全覆盖二值化条码BBC。扩张方式与图7中窗格SW扩张至覆盖核心条码区域的方式相同,但是降低灰阶值变化次数的预定值至更低的数值,例如3或2。如图11所示,若灰阶值变化次数的预定值为3,水平扫描线SH1所对应的变化次数为0,水平扫描线SH2所对应的变化次数为2,皆低于预定值,窗格SW便停止往垂直扩张。垂直扫描线SV1所对应的变化次数为2,垂直扫描线SV2所对应的变化次数为2,皆低于预定值,窗格SW便停止往水平扩张,窗格SW即可覆盖并定位二值化条码BBC。最后,若是应用上有需要,条码检测系统100可以将窗格SW的区间再稍微扩展,以保证可以涵盖到条码图像。
图12是图1的条码检测系统执行条码检测方法的流程图。条码检测方法包含以下步骤:
步骤S1202:相机10取得图像IMG;
步骤S1204:取得图像IMG中每一像素的水平图像梯度及垂直图像梯度;
步骤S1206:根据水平图像梯度及垂直图像梯度,产生每一像素的梯度相位角度及梯度能量强度;
步骤S1208:将每一像素的梯度能量强度二值化,以产生二值化图像BIMG;
步骤S1210:在二值化图像BIMG中产生一窗格SW;
步骤S1212:在窗格SW内对二值化图像BIMG以N个像素为间隔的V个垂直扫描线进行垂直取样,以统计二值化图像BIMG在垂直方向上的V个灰阶值变化次数;
步骤S1214:在窗格SW内对二值化图像BIMG以M个像素为间隔的H个水平扫描线进行水平取样,以统计二值化图像BIMG在水平方向上的H个灰阶值变化次数;
步骤S1216:垂直方向上的V个灰阶值变化次数是否高于第一预定值,且水平方向上的H个灰阶值变化次数是否高于第二预定值?若是,则判定窗格SW所覆盖的区域为最密集翻转区域,执行步骤S1220,若否,则执行步骤S1218;
步骤S1218:移动窗格SW至二值化图像BIMG中另一位置,执行步骤S1212;
步骤S1220:扩张窗格SW至窗格SW覆盖核心条码区域;
步骤S1222:提取核心条码区域中的多个像素的多个梯度相位角度以产生梯度相位角度分布;
步骤S1224:根据梯度相位角度分布,产生条码的格式检测结果;
步骤S1226:根据格式检测结果扩张窗格SW至窗格SW完全覆盖条码。
经由以上步骤,条码检测系统100即可准确且快速的在图像IMG中定位条码BC。
综上所述,本发明描述了一种条码检测方法以及条码检测系统。条码检测系统可使用相机提取图像,并用处理器计算图像中全范围或是特定区域内的每一像素的水平梯度以及垂直梯度,以产生每一像素的梯度相位角度以及梯度能量强度。为了增加检测精准度,系统可以将图像进行二值化处理。随后,利用间隔取样的机制以检测二值化图像的颜色特性,可大幅降低计算复杂度和处理时间。之后,经由移动窗格及二值化图像分析,可定位核心条码区域以进一步地分析梯度相位角度分布并根据梯度相位角度分布产生条码的格式检测结果。最终,系统可根据条码的格式检测结果进一步定位条码图像区域。因此,本发明的条码检测方法以及条码检测系统,除了具有高检测可靠度外,还具有低运算复杂度以及降低处理时间的优点。
以上所述仅为本发明的优选实施例,凡依本发明权利要求书所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (15)

1.一种条码检测方法,包含:
相机取得图像;
取得该图像中每一像素的水平图像梯度及垂直图像梯度;
根据该水平图像梯度及该垂直图像梯度,产生该每一像素的梯度相位角度及梯度能量强度;
将该每一像素的该梯度能量强度二值化,以产生二值化图像;
在该图像中产生窗格;
在该窗格内将该二值化图像以N个像素为间隔的V个垂直扫描线进行垂直取样,以统计该二值化图像在垂直方向上的V个灰阶值变化次数;
在该窗格内将该二值化图像以M个像素为间隔的H个水平扫描线进行水平取样,以统计该二值化图像在水平方向上的H个灰阶值变化次数;
若该垂直方向上的V个灰阶值变化次数高于第一预定值及该水平方向上的H个灰阶值变化次数高于第二预定值,则判定该窗格所覆盖的区域为最密集翻转区域;
若该窗格所覆盖的区域被判定为该最密集翻转区域,则扩张该窗格至该窗格覆盖核心条码区域;
提取该核心条码区域中的多个像素的多个梯度相位角度,以产生梯度相位角度分布;
根据该梯度相位角度分布,产生该条码的格式检测结果;及
根据该格式检测结果扩张该窗格至该窗格完全覆盖该条码。
2.如权利要求1所述的方法,其中取得该图像中该每一像素的该水平图像梯度及该垂直图像梯度,为利用水平矩阵模板及垂直矩阵模板对该图像的该每一像素的亮度做卷积(convolution)运算,以产生该每一像素的该水平图像梯度及该垂直图像梯度。
3.如权利要求1所述的方法,其中将该每一像素的该梯度能量强度二值化,以产生该二值化图像包含:
设定阈值;及
比较该阈值与该梯度能量强度,以将该每一像素对应至第一灰阶值或第二灰阶值;
其中该第一灰阶值大于该第二灰阶值。
4.如权利要求3所述的方法,其中该二值化后的图像在该垂直方向上的V个灰阶值变化次数,为该二值化后的图像在该垂直方向上,以该V个垂直扫描线进行垂直取样的V个该第一灰阶值与该第二灰阶值相互转换的次数。
5.如权利要求3所述的方法,其中该二值化后的图像在该水平方向上的H个灰阶值变化次数,为该二值化后的图像在该水平方向上,以该H个水平扫描线进行水平取样的H个该第一灰阶值与该第二灰阶值相互转换的次数。
6.如权利要求1所述的方法,还包含:
若该垂直方向上的V个灰阶值变化次数低于第一预定值和/或该水平方向上的H个灰阶值变化次数低于第二预定值,则在水平方向移动该窗格。
7.如权利要求1所述的方法,还包含:
若该垂直方向上的V个灰阶值变化次数低于第一预定值和/或该水平方向上的H个灰阶值变化次数低于第二预定值,则在垂直方向移动该窗格。
8.如权利要求1所述的方法,其中扩张该窗格至该窗格覆盖该核心条码区域包含:
沿该水平方向扩张该窗格;
在沿该水平方向扩张该窗格之后,在该窗格的扩张区域内,统计该二值化图像在该垂直方向上的灰阶值变化次数;及
若在该扩张区域内,该二值化图像在该垂直方向上的灰阶值变化次数高于预定值,则再次往该水平方向扩张该窗格。
9.如权利要求1所述的方法,其中扩张该窗格至该窗格覆盖该核心条码区域包含:
往该垂直方向扩张该窗格;
在沿该垂直方向扩张该窗格之后,在该窗格的扩张区域内,统计该二值化图像在该水平方向上的灰阶值变化次数;及
若在该扩张区域内,该二值化图像在该水平方向上的灰阶值变化次数高于预定值,则再次往该垂直方向扩张该窗格。
10.如权利要求1所述的方法,其中根据该格式检测结果扩张该窗格至该窗格完全覆盖该条码包含:
沿该水平方向扩张该窗格;
在沿该水平方向扩张该窗格之后,在该窗格的扩张区域内,统计该二值化图像在该垂直方向上的灰阶值变化次数;及
若在该扩张区域内,该二值化图像在该垂直方向上的灰阶值变化次数高于预定值,则再次往该水平方向扩张该窗格。
11.如权利要求1所述的方法,其中根据该格式检测结果扩张该窗格至该窗格完全覆盖该条码包含:
往该垂直方向扩张该窗格;
在沿该垂直方向扩张该窗格之后,在该窗格的扩张区域内,统计该二值化图像在该水平方向上的灰阶值变化次数;及
若在该扩张区域内,该二值化图像在该水平方向上的灰阶值变化次数高于预定值,则再次往该垂直方向扩张该窗格。
12.如权利要求1所述的方法,还包含:
设定P个梯度相位决策边界(Decision Boundary),其中相邻的梯度相位决策边界相差2π/P;
将该图像区域中的所有像素的这些梯度相位角度,利用该P个梯度相位决策边界以产生多个梯度相位决策角度;及
根据这些梯度相位决策角度,产生该梯度相位角度分布;
其中P为大于等于4的偶数。
13.如权利要求1所述的方法,其中根据该梯度相位角度分布,产生该条码的该格式检测结果包含:
若该梯度相位角度分布仅包含一个峰度(Kurtosis)分布,则产生该条码为一维条码的该格式检测结果。
14.如权利要求1所述的方法,其中根据该梯度相位角度分布,产生该条码的该格式检测结果包含:
若该梯度相位角度分布包含两个峰度(Kurtosis)分布,且该两峰度分布所对应的两峰值相位差趋近于π/2,则产生该条码为二维条码的该格式检测结果。
15.一种条码检测系统,包含:
相机,用以取得图像;
处理器,耦接于该相机,用以处理该图像,以产生一条码的格式检测结果;及
存储器,耦接于该处理器,用以缓存图像处理数据;
其中该处理器取得该图像中每一像素的水平图像梯度及垂直图像梯度,根据该水平图像梯度及该垂直图像梯度,产生该每一像素的梯度相位角度及梯度能量强度,将该每一像素的该梯度能量强度二值化,以产生二值化图像,在该图像中产生窗格,在该窗格内将该二值化图像以N个像素为间隔的V个垂直扫描线进行垂直取样,以统计该二值化图像在垂直方向上的V个灰阶值变化次数,在该窗格内将该二值化图像以M个像素为间隔的H个水平扫描线进行水平取样,以统计该二值化图像在水平方向上的H个灰阶值变化次数,若该垂直方向上的V个灰阶值变化次数高于第一预定值及该水平方向上的H个灰阶值变化次数高于第二预定值,则判定该窗格所覆盖的区域为最密集翻转区域,若该窗格所覆盖的区域被判定为该最密集翻转区域,则扩张该窗格至该窗格覆盖核心条码区域,提取该核心条码区域中的多个像素的多个梯度相位角度以产生梯度相位角度分布,根据该梯度相位角度分布产生该条码的格式检测结果,及根据该格式检测结果扩张该窗格至该窗格完全覆盖该条码。
CN202010051373.7A 2019-12-25 2020-01-17 条码检测方法及系统 Active CN113033234B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW108147519 2019-12-25
TW108147519A TWI742492B (zh) 2019-12-25 2019-12-25 條碼偵測方法及系統

Publications (2)

Publication Number Publication Date
CN113033234A true CN113033234A (zh) 2021-06-25
CN113033234B CN113033234B (zh) 2024-02-13

Family

ID=76458591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010051373.7A Active CN113033234B (zh) 2019-12-25 2020-01-17 条码检测方法及系统

Country Status (2)

Country Link
CN (1) CN113033234B (zh)
TW (1) TWI742492B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908128A (zh) * 2010-06-01 2010-12-08 福建新大陆电脑股份有限公司 Aztec Code条码解码芯片及其解码方法
CN104200561A (zh) * 2014-06-16 2014-12-10 华中科技大学 一种基于纹理特征识别具有字迹污损人民币的方法
CN106548107A (zh) * 2015-09-23 2017-03-29 株式会社理光 条形码定位装置和条形码定位方法、以及条形码读取装置和条形码读取方法
CN108961262A (zh) * 2018-05-17 2018-12-07 南京汇川工业视觉技术开发有限公司 一种复杂场景下的条码定位方法
CN109165538A (zh) * 2018-07-18 2019-01-08 北京飞搜科技有限公司 基于深度神经网络的条形码检测方法及装置
US20190102590A1 (en) * 2017-09-29 2019-04-04 Datalogic Ip Tech S.R.L. System and method for detecting optical codes with damaged or incomplete finder patterns
CN109690562A (zh) * 2018-05-18 2019-04-26 香港应用科技研究院有限公司 由全卷积神经网络加速细胞学图像分类的图像预处理
CN110069983A (zh) * 2019-03-08 2019-07-30 深圳神目信息技术有限公司 基于显示媒质的活体识别方法、装置、终端及可读介质
US20190377918A1 (en) * 2018-06-06 2019-12-12 Weltrend Semiconductor Inc. Barcode Detection Method and Barcode Detection System for Increasing Detection Efficiency by Using Gray Level Flip Counts

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103996212B (zh) * 2013-02-18 2017-11-14 威达电股份有限公司 自动描绘对象边缘走向之方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908128A (zh) * 2010-06-01 2010-12-08 福建新大陆电脑股份有限公司 Aztec Code条码解码芯片及其解码方法
CN104200561A (zh) * 2014-06-16 2014-12-10 华中科技大学 一种基于纹理特征识别具有字迹污损人民币的方法
CN106548107A (zh) * 2015-09-23 2017-03-29 株式会社理光 条形码定位装置和条形码定位方法、以及条形码读取装置和条形码读取方法
US20190102590A1 (en) * 2017-09-29 2019-04-04 Datalogic Ip Tech S.R.L. System and method for detecting optical codes with damaged or incomplete finder patterns
CN108961262A (zh) * 2018-05-17 2018-12-07 南京汇川工业视觉技术开发有限公司 一种复杂场景下的条码定位方法
CN109690562A (zh) * 2018-05-18 2019-04-26 香港应用科技研究院有限公司 由全卷积神经网络加速细胞学图像分类的图像预处理
US20190377918A1 (en) * 2018-06-06 2019-12-12 Weltrend Semiconductor Inc. Barcode Detection Method and Barcode Detection System for Increasing Detection Efficiency by Using Gray Level Flip Counts
CN110569683A (zh) * 2018-06-06 2019-12-13 伟诠电子股份有限公司 条码检测方法及条码检测系统
CN109165538A (zh) * 2018-07-18 2019-01-08 北京飞搜科技有限公司 基于深度神经网络的条形码检测方法及装置
CN110069983A (zh) * 2019-03-08 2019-07-30 深圳神目信息技术有限公司 基于显示媒质的活体识别方法、装置、终端及可读介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
于俊伟;鲁传政;靳小波;: "基于梯度方向评估的条码定位方法研究", 电脑编程技巧与维护, no. 01, pages 31 - 34 *

Also Published As

Publication number Publication date
TWI742492B (zh) 2021-10-11
TW202125313A (zh) 2021-07-01
CN113033234B (zh) 2024-02-13

Similar Documents

Publication Publication Date Title
CN110569683B (zh) 条码检测方法及条码检测系统
CN109255271B (zh) 用于读取光码的光电代码阅读器和方法
Liu et al. Recognition of QR Code with mobile phones
US6758399B1 (en) Distortion correction method in optical code reading
US20020044689A1 (en) Apparatus and method for global and local feature extraction from digital images
US5616905A (en) Two-dimensional code recognition method
US6895116B2 (en) Automatically extracting graphical bar codes
US10599902B2 (en) Methods and apparatus for decoding under-resolved symbols
EP3462372B1 (en) System and method for detecting optical codes with damaged or incomplete finder patterns
JPH0276087A (ja) バーコード読み取り技術
US7305131B2 (en) Extracting graphical bar codes from an input image
US20040256462A1 (en) Method and device for recording of data
Gaur et al. Recognition of 2D barcode images using edge detection and morphological operation
JPH1063772A (ja) データマトリックスシンボルを有する機械読取り可能なシンボルを探し、デコードするための方法及び装置
US7050631B2 (en) Barcode detection system
US9396422B1 (en) Methods and systems for localizing aztec codes
US20150294129A1 (en) Method and device for identifying a two-dimensional barcode
US10872257B2 (en) Barcode detection method and barcode detection system for increasing detection efficiency
CN113033234B (zh) 条码检测方法及系统
US5764798A (en) Prioritized searching methods for finding a coded symbol in a digitized image
Svarnovics DataMatrix Barcode Read Rate Improvement Using Image Enhancement
US10303913B2 (en) Virtual wave decoder for blurred images and subpixel performance
US20230386068A1 (en) Determining the Module Size of an Optical Code
Karrach Location and Recognition of Data Matrix and QR Codes in Images
Ferano et al. QR Code Detection and Rectification Using Pyzbar and Perspective Transformation

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