CN108256375B - 一种一维条形码扫描方法 - Google Patents
一种一维条形码扫描方法 Download PDFInfo
- Publication number
- CN108256375B CN108256375B CN201810023820.0A CN201810023820A CN108256375B CN 108256375 B CN108256375 B CN 108256375B CN 201810023820 A CN201810023820 A CN 201810023820A CN 108256375 B CN108256375 B CN 108256375B
- Authority
- CN
- China
- Prior art keywords
- scanning
- bar code
- image
- line
- scanned
- 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
- 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
- G06K7/1456—Methods for optical code recognition including a method step for retrieval of the optical code determining the orientation of the optical code with respect to the reader and correcting therefore
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 Analysis (AREA)
Abstract
本发明提供一种一维条形码扫描方法,获取含有一维条形码的图像,对图像进行二值化处理,以设定的扫描角度和扫描起始位置启动对二值化处理后的图像的扫描;以设定的像素索引增量对图像当前行进行扫描,避免了对图像进行旋转操作,大大提高了效率。本发明将角度扫描方法和加速扫描方法有机的整合到一起,实现了多角度的快速扫描,提高了在嵌入式设备上的扫描性能。
Description
技术领域
本发明属于图像识别技术领域,涉及一种一维条形码扫描方法。
背景技术
条形码是将宽度不等的多个黑条和空白(白条),按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。条形码可以标出物品的制造厂家、商品名称、生产日期、图书分类号、日期等信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。
随着物联网时代的到来,条码扫描作为最重要的数据采集手段,得到了广泛的应用。已经深入到各行各业当中,如快递物流、商品库存管理、医药、零售等。而普通使用的扫描装置大多是嵌入式设备,条码识别算法的好坏于产品性能有着密不可分的联系。市面上普通使用的一维条码采集器需要一条红色激光束进行辅助定位,以确保一维条码在合适的位置和方向。在扫描较为频繁,工作量大时,无疑就增加了操作负担,一些大件物品需要挪动位置或进行方向旋转也非常不便。现有的一维条码扫描识别,需要将一维条码摆正,以使红色激光束与一维条码边界平行,从而准确扫描一维条码,因此,扫描时需要搬动物体使得一维条码处于合适的位置。一些扫描方法为了解决这一问题,在使用摄像头获取一维条码图像数据后,在一维条码具有一定旋转角度情况下,即一维条码相对于X轴倾斜,通过旋转图像使得一维条码与X轴平行,再进行扫描识别。
申请号为201410079991.7的中国专利申请提供了一种基于Davinci技术的一维条码识别方法,包括,输入图像预处理的步骤:对输入的RGB格式的源图像进行灰度化处理,以及缩小处理和去噪处理,分别获得解码用灰度图、定位用灰度图、去噪后灰度图;条码定位步骤:对获得的三张灰度图进行相关处理,提取条码区域并校正角度;解码的步骤:对提取的条码区域进行扫描和解码,获得条码码值。条码定位步骤具体包括,顶帽滤波:对去噪后灰度图和定位用灰度图进行顶帽滤波处理,获得滤波后灰度图;获取掩码:由滤波后灰度图的相关信息,对定位灰度图进行二值化阈值处理,获取初步的掩码;对该初步的掩码进行形态学操作,消除噪声,连通条码区域,得到条码区域的掩码,并对条码区域的掩码进行放大,使得掩码的大小与解码用灰度图相同;用放大后的掩码处理解码用灰度图,获取解码用灰度图中的条码区域;条码旋正:利用霍夫变换算法,获取条码区域中与条空平行的直线的倾斜角,并根据该倾斜角对条码区域进行旋正。该方法需要利用霍夫变换算法计算条码的倾斜角,再根据倾斜角对条码区域进行旋正操作,非常复杂。
申请号201510047272.1的中国发明专利申请提供了一种面向实时嵌入式系统的一维条码识别方法,包括:对于采集的图像进行处理,获得降低分辨率的二值化图像和原分辨率的二值化图像;在降低分辨率的二值化图像中定位条码区域;利用上述条码区域定位信息,对原分辨率的二值化图像进行识别,进行条码解码。该方法需要进行位置信息转换,将条码区域在降低分辨率的二值化图像中的位置信息转换为在原分辨率二值化图像中的位置信息,在原分辨率二值化图像中进行条码旋正操作,同样是需要将倾斜条码旋正。
申请号201410727509.6的中国发明专利申请提供了一种商品外包装一维条形码快速定位识别方法,利用条形码模板图像(即任意一维条码图像)与获取的商品条形码图像进行特征匹配,得到当前商品条形码的定位区域,利用Hough变换直线检测求得条形码倾斜角度,改变SURF特征点主方向的范围区间到0-180度后SURF特征点主方向具有同一指向,从而将倾斜的商品条形码区域进行角度校正。将倾斜的商品条形码区域进行角度校正具体包括:利用一定半径大小的圆形窗口,从SURF特征匹配准确定位点开始,沿着准确条形码倾斜方向的前后左右进行区域生长运动,找出条形码图像的前后左右边界点,最后利用这四个边界点完整分割出商品条形码图像,并利用双线性插值法对倾斜条形码图像进行摆正。
为了准确扫描识别一维条形码,现有技术的普遍思路是将倾斜的一维条形码通过算法进行旋正或摆正操作,而图像旋转算法对CPU的资源具有很大的消耗作用,在一些嵌入式平台上体现尤为突出,大大影响了扫描效率。一种快速、准确、环境适应能力强的条码识别算法有着重要意义。
发明内容
为解决现有技术存在的问题,本发明提供一种一维条形码扫描方法,可以在不使用图像旋转的条件下,对旋转条码进行高效快速识别。
本发明提供的一维条形码扫描方法,获取含有一维条形码的图像,对图像进行二值化处理,包括以下步骤:
(1)以设定的扫描角度和扫描起始位置启动对二值化处理后的图像的扫描;
(2)以设定的像素索引增量对图像当前行进行扫描,如果到达图像边界,则当前行已经扫描完毕,则进入步骤(3);如果没有达到图像边界,则进入步骤(6);
(3)判断该图像是否已经完成整张图像的扫描,如果没有完成整张图像扫描,则进入步骤(4),否则进入步骤(5);
(4)另起一行进行反方向扫描并进入步骤(2);
(5)判断是否完成设定的全部扫描角度的扫描,如果已经根据设定的所有扫描角度完成对图像的扫描,则扫描结束,没有识别到条形码;否则,进入步骤(1),改变扫描角度,进行下一扫描角度的扫描,即利用新的扫描角度对图片进行再一次扫描;
(6)判断图像像素值是否发生黑白跳变,如果发生黑白跳变则进入步骤(7),如果没有发生黑白跳变,则进入步骤(2)。
(7)对一维条形码进行解码,如果解码失败进入步骤(2)。
本发明通过摄像头获得图像数据,经过“图像二值化算法”后送入多角度快速识别方法当中,在条形码具有旋转角度的情况下,依然能够进行快速识别。使用常规方法扫描具有一定旋转角度的一维条码时,是通过图像旋转的方法来实现,而图像旋转算法对CPU的资源具有很大的消耗作用,在一些嵌入式平台上体现尤为突出,大大影响了扫描效率。使用本发明进行条码识别,可以在不使用图像旋转的条件下,对旋转条码进行高效快速识别。
为加快扫描,提高效率,本发明不采用逐行扫描模式,采用加速扫描方法,所述步骤(4)中,另起N行进行反方向扫描,N>1。
本发明还包括对条形码上边界、下边界的探测,具体为:跨行进行扫描,探测到条形码初步位置后,再转为逐行扫描,即,每间隔N行进行扫描,若扫描到条形码,初步确定条形码位置T,以T行为基准逐行回退扫描,若扫描到条形码则记录当前条码位置为M,随后如果出现连续C次扫描不到条形码,则认为已经超出条形码上边界,并以上次检测到的条形码位置M作为上边界,否则继续逐行回退扫描;以T行作为基准逐行向下扫描,若扫描到条形码则记录条码位置为W,随后如果出现连续C次扫描不到条码,则认为已经超出条码下边界,并以上次检测到的条码位置W作为下边界,否则继续逐行回退扫描;C>1。
为提高解码准确度,本发明确定条形码的上边界、下边界后,针对上、下边界之间的条形码进行扫描并进行解码。
本发明所述步骤(7)中的一维码解码具体为:如果发生黑白跳变,则保存当前黑条、白条的宽度,并将当前黑条、白条的宽度与之前保存的黑条、白条的宽度分别进行比值计算获得比例,将获得的比例与标准库中的比例进行比较,如果在标准库中找到对应的比例,则条形码解码成功。
由于条形码在图片中的位置有多种可能,对应的倾斜角度也存在多种,选定的扫描角度与条码的实际倾斜角度可能存在偏差,该偏差与条形码的高度有关系,设条形码长度为w,高度为h,则扫描角度与条形码在图像中的倾斜角度的偏差在+-arctan(h/w)内的,以该扫描角度进行扫描都可以扫描到条形码。
本发明所述扫描角度为-90°、-63.43°、-45°、-26.56°、0°、26.56°、45°或63.43°,前述选定的几个特殊扫描角度α可以保证扫描效率最高,并且保证死角相对较少。
扫描起始位置位于图像边缘,且距图像顶点的距离为图像长度或宽度的10%以内。
本发明像素索引增量为dx=Rcos(α)、dy=Rsin(α),dx、dy向下取整数,其中,α为扫描角度,α∈[-90,90],R为常数,R取使得dx、dy为最小整数的最小值,这种设置方式提高了效率,避免浮点运算。
本发明判断当前扫描的像素点是否超出图像边界的方法为,如果当前扫描的像素点的坐标大于该像素点所在行的图像边界像素点的坐标,则超出图像边界。
一维条形码具有方向性,传统方式实现各个方向扫描一维条码时,普遍采用将图片进行旋转,而进行图片的旋转操作非常消耗CPU。本发明使用角度扫描方法巧妙的避开了这点,同时,可对扫描角度进一步细分,以此消除解码“死角”的出现。
本发明使用扫描加速方法,通过初步探测到条码所在位置,然后转为逐行探测,使用该种方式,大大缩减了扫描时间。经过实际测试,扫描速度可以提高4倍以上。
本发明将角度扫描方法和加速扫描方法有机的整合到一起,实现了多角度的快速扫描,提高了在嵌入式设备上的扫描性能。
附图说明
图1为本发明正角度往返扫描示意图;
图2为本发明负角度往返扫描示意图;
图3为本发明正、负角度往返扫描的角度与像素递增关系示意图;
图4为本发明方向扫描流程图;
图5为本发明加速扫描流程图;
图6为本发明解码流程图。
具体实施方式
本发明提供的一维条码扫描方法,通过摄像头等设备获得条形码的图片后,利用图像二值化算法对图片进行二值化处理,即,使用局部二值化算法,将图像切割成若干小的区域,对每个小区域进行二值化操作,最后得到整体的二值化图像。对图片进行二值化处理的具体方法有很多,这不是本发明的发明点。
如图4所示,本发明的方向扫描具体流程如下:
101:根据扫描角度和扫描起始位置对图片进行扫描。如果是正角度扫描,从图片的左上角开始扫描,起始位置在图片左上角与图片边缘距离为US个像素点,也可以将起始位置设置在图片的左上角的边缘处;同理,也可以从图片的右下角开始进行正角度扫描。如果是负角度扫描,从图片的左下角开始扫描,起始位置在图片左下角与图片边缘距离为DS个像素点,也可以将起始位置设置在图片的左下角的边缘处;同理,也可以从图片的右上角开始进行负角度扫描。
102:根据像素索引增量表对像素索引I进行移动。像素增量表可以根据需要进行补充,从而支持更多扫描角度。
103:根据像素索引增量表进行像素索引移动、实现扫描的过程中,如果到达图片边界,说明当前行已经扫描完毕,进入步骤104。如果没有到达图片边界,则进入步骤108。判断当前扫描的像素点是否超出图像边界的方法为,如果当前扫描的像素点的坐标大于该像素点所在行的图像边界像素点的坐标,则超出图像边界。参考图1,如果当前扫描的像素点的坐标为(50,100),而该像素点所在行的图像边界像素点坐标为(49,99),则当前扫描的像素点超过图像边界。
104:判断该图片是否已经完成整张图片的扫描,如果没有完成整张图片扫描,则进入步骤105,否则进入步骤106。
105:另起一行进行反方向扫描(与上一行的扫描方向相反,实现往返扫描),并进入步骤102。
106:判断是否完成设定的全部扫描角度的扫描,如果已经根据设定的所有扫描角度完成了全部扫描,则扫描结束,没有识别到条形码。否则,进入步骤107。
107:改变扫描角度,进行下一次扫描,进入步骤101,即利用新的扫描角度对图片进行再一次扫描。
108:判断图像像素值是否发生黑白跳变,如果发生黑白跳变则进入步骤109,如果没有发生黑白跳变,则进入步骤102。
109:进入解码流程,如果解码成功则返回条码识别成功,否则进入步骤102。
结合图1、3,下面详细说明如何进行正角度扫描。大致可以将图1的整体当成一张拍摄条形码后形成的图片。正角度扫描起始点位于图片左上角部分,从图片左上角开始扫描;毫无争议地,也可以从图片的右下角开始扫描。起始位置可以位于图片的左上角的顶点处,也可以选择在图片左上角与图片边缘距离为US个像素点,即,在距左上角顶点处一段距离的位置开始扫描。根据申请人的测算,一般可选到顶点处的距离为图片长或宽的10%的位置,具体来说,如果将起始位置设定在图片的左侧(left边)或上侧(up边),则起始位置距左上角顶点处的距离可选为图片宽度的10%或起始位置距左上角顶点处的距离为图片长度的10%,如果将起始位置设定在图片的右侧(right边)或下侧(down边),则起始位置距右下角顶点处的距离可选为图片宽度的10%或者起始位置距右下角顶点处的距离为图片长度的10%。正角度扫描的起始角度与水平方向成0~90度夹角(0度为水平扫描)。
以图1中选定的left边为例,以45°角进行扫描,图中的条形码以45°或近似45°的角度倾斜。从起始位置扫描时,像素索引增量为(1,1),判断图像像素值是否发生黑白跳变,如果没有发生黑白跳变,并且到达图片边界,则另起一行反向扫描,依此进行往返扫描,当扫描到r行时,发生黑白跳变,即扫描到条形码。
结合图2、3,下面详细说明如何进行负角度扫描。大致可以将图1的整体当成一张拍摄条形码后形成的图片。负角度扫描起始点位于图片左下角部分,从图片左下角开始扫描;毫无争议地,也可以从图片的右上角开始扫描。起始位置可以位于图片的左下角的顶点处,也可以选择在图片左下角与图片边缘距离为DS个像素点,即,在距左下角顶点处一段距离的位置开始扫描。根据申请人的测算,一般可选到顶点处的距离为图片长或宽的10%的位置,具体来说,如果将起始位置设定在图片的左侧(left边)或下侧(down边),则起始位置距左下角顶点处的距离可选为图片宽度的10%或起始位置距左下角顶点处的距离为图片长度的10%,如果将起始位置设定在图片的右侧(right边)或上侧(up边),则起始位置距右上角顶点处的距离可选为图片宽度的10%或者起始位置距右上角顶点处的距离为图片长度的10%。负角度扫描的起始角度与水平方向成-90~0度夹角(-90度为竖直扫描)。
以图2中选定的left边为例,以-45°角进行扫描,图中的条形码以-45°或近似-45°的角度倾斜。从起始位置扫描时,像素索引增量为(1,-1),判断图像像素值是否发生黑白跳变,如果没有发生黑白跳变,并且到达图片边界,则另起一行反向扫描,依此进行往返扫描,当扫描到r行时,发生黑白跳变,即扫描到条形码。
无论是正角度往返扫描还是负角度往返扫描,扫描像素索引增量与扫描角度α存在如下关系:dx=Rcos(α),dy=Rsin(α),dx、dy向下取整数,其中:α为扫描角度,α∈[-90,90],为提高效率,避免浮点运算,可使dx,dy都为整数,R为常数,R取使得dx、dy为最小整数的最小值。扫描角度α存在以下几个特殊值:-90°(竖直扫描)、-63.43°、-45°、-26.56°、0°(水平扫描)、26.56°、45°、63.43°。以上扫描角度可以取得很好的扫描效率,也可以采用其他扫描角度。需要说明的是,由于条形码在图片中的位置有多种可能,对应的倾斜角度也存在多种,选定的扫描角度与条码的实际倾斜角度可能存在偏差,该偏差与条形码的高度有关系,设条形码长度为w,高度为h,则扫描角度与条形码倾斜角度的偏差在+-arctan(h/w)内的,以该扫描角度进行扫描都可以扫描到条形码。前述选定的几个特殊扫描角度α可以保证扫描效率最高,并且保证死角相对较少。在当前像素下,依据像素增量进行移动,形成具有一定倾斜角度的扫描线。结合图3,扫描角度对应的像素索引增量见表1,根据表1中的像素索引增量,像素索引I每次移动一个像素,也可以设定为移动多个像素:
扫描角度(α) | 像素索引增量(dx,dy) |
-90° | (0,-1) |
-63.5° | (1,-2) |
-45° | (1,-1) |
-26.56° | (2,-1) |
0° | (1,0) |
26.56° | (2,1) |
45° | (1,1) |
63.43° | (1,2) |
表1
如图5所示,本发明为提高扫描效率,加速扫描不采用逐行扫描模式,而是每间隔N行进行探测,探测到初步位置后,再回退转为逐行扫描,以精确确定条码位置,也就是说,本发明的方向扫描中针对图片各行的扫描采用加速扫描的方式。由初始行开始,每间隔N行进行扫描,若扫描到条码,初步确定条码位置T,转为精确搜寻。反之,继续间隔N行扫描,直到完成一次图片扫描,如没探测到条码,则获取条失败。在初步确定条码位置后,以T行为基准逐行回退扫描,若扫描到条码则记录当前条码位置为M。若出现连续有C次扫描不到条码,则认为已经超出条码上边界,并以上次检测到的条码位置M作为上边界。上边界寻找完成之后,继续以T行作为基准逐行向下扫描,若扫描到条码则记录条码位置为W。若出现连续有C次扫描不到条码,则认为已经超出条码下边界,并以上次检测到的条码位置W作为下边界。
针对方向扫描确定的起始位置,设置该起始位置为对第K行进行扫描,加速扫描流程具体如下:
201:对第K行进行扫描,如果第K行检测到条形码,则进入步骤202,否则进入步骤210。
202:保存当前的行数至T中,进入步骤203。
203:回退至上一行进行扫描,如果检测到条形码则进入步骤204。如果没有检测到条形码,则判断是否连续C行没有检测到条形码,如果不是,则进入步骤203,如果是连续C行没检测到条形码则进入步骤205。
204:保存当前的行数至M中,进入步骤203。
205:将上次检测到条形码所在行M作为条形码的上边界所在行。若出现连续有C次扫描不到条码,则认为已经超出条码上边界。
206:回到T行,令k=T。
207:令k=k+1,即从T+1行开始扫描。判断是否检测到条形码,如果检测到条形码则进入步骤208,否则判断是否连续C行没有检测到条形码,如果不是连续C行没有检测到,则进入步骤207,如果连续C行没有检测到条形码,则进入步骤209。
208:保存当前行数至W中,进入步骤207。
209:将上次检测到条形码所在行W作为条形码的下边界所在行。若出现连续有C次扫描不到条码,则认为已经超出条码下边界。
210:递增N行进行扫描,首先判断K+N行是否超出图片边界,如果超出图片边界,则没有检测到条形码,获取条形码失败;否则,返回步骤201。
本发明确定条形码上、下边界目的在于确保条形码解码可靠性,从理论上说完整扫描任意一行后都可以完整解码,但为了可靠性和准确性,确定条形码上、下边界后,可以从中扫描任意若干行后,对每一行都进行解码操作,如果解码结果一致则认为解码成功,确保了解码的准确性。
如图6所示,本发明条形码解码流程为:将像素索引I移动到某一行起始点,根据像素增量表进行移动,开始一行的扫描。在扫描条形码的其中一行时,判断当前像素当前像素状态,如果发生黑白跳变,则保存当前黑条、白条的宽度,并将当前黑条、白条的宽度与之前保存的黑条、白条的宽度分别进行比值计算获得比例,将获得的比例与标准库中的比例进行比较,如果在标准库中找到对应的比例,则条形码解码成功,否则继续扫描条形码,即继续按照增量表向前移动,若到达图像边界且还未找到条码,则清除该行所有状态信息,返回失败,该行没有找到条码,进入下一行扫描。一维条形码的解码方式有很多,以上仅为其中一种,其余现有技术不再做过多介绍,即使本发明不介绍任何解码流程,本领域技术人员也知道如何利用现有解码方式在本发明基础上进行条形码解码操作。
下面结合图1,以正角度扫描为例说明本发明的扫描过程:
利用摄像头等设备采集到如图1所示的含条形码的图像,对图像进行二值化处理。以45°角从图像左上角的k行开始扫描图像,第k行未扫描到条形码,则重新确定新行反方向往回扫描,实现图示中的箭头示意的往返扫描。在往返扫描过程中,为提高扫描效率,当k行未扫描到条形码时,并不是直接对k+1行进行扫描,而是对k+N行扫描(N>1),即采用本发明的加速扫描方法,以加速扫描的方式探测到具有条形码的位置。在采用加速扫描过程中,当扫描到图示中的s行时,由于该行扫描到条形码,则以s行为起点,分别向上、向下逐行进行扫描,当向上逐行扫描时,扫描到r行后(图中可见r行为条形码上边界),继续向上扫描,由于连续C行未扫描到条形码(C的大小可根据情况自行设定,C>1),则以r行为该条形码的上边界;当向下逐行扫描时,扫描到t行后(图中可见t行为条形码下边界),继续向下扫描,由于连续C行未扫描到条形码(C的大小可根据情况自行设定,C>1),则以t行为该条形码的上边界。在扫描一行的过程中,扫描到条形码,即检测到黑白跳变,就要保存黑条、白条的宽度,并将当前黑条、白条的宽度与之前保存的黑条、白条的宽度分别进行比值计算获得比例,将该比例与标准库中的比例进行比较,完成一次解码过程。在扫描一行的过程中会发生多次黑白跳变,也就是说会进行多次解码过程,同时,本发明扫描多行,针对每行都会进行解码操作,以提高解码的准确度。
可以预见的是,条形码在图像中的角度可能会存在多样,例如图1中的45°倾斜,图2中的-45°倾斜,甚至是水平设置或垂直设置,本发明选定的扫描角度可以有效覆盖针对条形码任何倾斜角度的扫描,可准确实现扫描解码。
Claims (8)
1.一种一维条形码扫描方法,获取含有一维条形码的图像,对图像进行二值化处理,其特征在于,包括以下步骤:
(1)以设定的扫描角度和扫描起始位置启动对二值化处理后的图像的扫描;
(2)以设定的像素索引增量对图像当前行进行扫描,如果到达图像边界,则当前行已经扫描完毕,进入步骤(3);如果没有达到图像边界,则进入步骤(6);
(3)判断该图像是否已经完成整张图像的扫描,如果没有完成整张图像扫描,则进入步骤(4),否则进入步骤(5);
(4)另起N行进行反方向扫描并进入步骤(2),N>1;还包括对条形码上边界、下边界的探测,具体为:跨行进行扫描,探测到条形码初步位置后,再转为逐行扫描,即,每间隔N行进行扫描,若扫描到条形码,初步确定条形码位置T,以T行为基准逐行回退扫描,若扫描到条形码则记录当前条码位置为M,随后如果出现连续C次扫描不到条形码,则认为已经超出条形码上边界,并以上次检测到的条形码位置M作为上边界,否则继续逐行回退扫描;以T行作为基准逐行向下扫描,若扫描到条形码则记录条码位置为W,随后如果出现连续C次扫描不到条码,则认为已经超出条码下边界,并以上次检测到的条码位置W作为下边界,否则继续逐行回退扫描;C>1;
(5)判断是否完成设定的全部扫描角度的扫描,如果已经根据设定的所有扫描角度完成对图像的扫描,则扫描结束,没有识别到条形码;否则,进入步骤(1),改变扫描角度,进行下一扫描角度的扫描,即利用新的扫描角度对图片进行再一次扫描;
(6)判断图像像素值是否发生黑白跳变,如果发生黑白跳变则进入步骤(7),如果没有发生黑白跳变,则进入步骤(2);
(7)对一维条形码进行解码,如果解码失败进入步骤(2)。
2.如权利要求1所述的一维条形码扫描方法,其特征在于:确定条形码的上边界、下边界后,针对上、下边界之间的条形码进行扫描并进行解码。
3.如权利要求1所述的一维条形码扫描方法,其特征在于:所述步骤(7)中的一维码解码具体为:如果发生黑白跳变,则保存当前黑条、白条的宽度,并将当前黑条、白条的宽度与之前保存的黑条、白条的宽度分别进行比值计算获得比例,将获得的比例与标准库中的比例进行比较,如果在标准库中找到对应的比例,则条形码解码成功。
4.如权利要求1-3任一权利要求所述的一维条形码扫描方法,其特征在于:扫描角度与条形码在图像中的倾斜角度的偏差在+-arctan(h/w)内,其中条形码长度为w,高度为h。
5.如权利要求1-3任一权利要求所述的一维条形码扫描方法,其特征在于:所述扫描角度为-90°、-63.43°、-45°、-26.56°、0°、26.56°、45°或63.43°。
6.如权利要求1-3任一权利要求所述的一维条形码扫描方法,其特征在于:扫描起始位置位于图像边缘,且距图像顶点的距离为图像长度或宽度的10%以内。
7.如权利要求1-3任一权利要求所述的一维条形码扫描方法,其特征在于:像素索引增量为dx=R cos(α)、dy=R sin(α),dx、dy向下取整数,其中,α为扫描角度,α∈[-90,90],R为常数,R取使得dx、dy为最小整数的最小值。
8.如权利要求1-3任一权利要求所述的一维条形码扫描方法,其特征在于:判断当前扫描的像素点是否超出图像边界的方法为,如果当前扫描的像素点的坐标大于该像素点所在行的图像边界像素点的坐标,则超出图像边界。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810023820.0A CN108256375B (zh) | 2018-01-10 | 2018-01-10 | 一种一维条形码扫描方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810023820.0A CN108256375B (zh) | 2018-01-10 | 2018-01-10 | 一种一维条形码扫描方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108256375A CN108256375A (zh) | 2018-07-06 |
CN108256375B true CN108256375B (zh) | 2021-04-06 |
Family
ID=62726006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810023820.0A Active CN108256375B (zh) | 2018-01-10 | 2018-01-10 | 一种一维条形码扫描方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108256375B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918961B (zh) * | 2019-02-21 | 2021-03-30 | 华南理工大学 | 一种基于图像特征的条形码定位方法 |
CN110222549B (zh) * | 2019-06-05 | 2022-04-01 | 广东旭龙物联科技股份有限公司 | 一种变步长的快速二维码定位方法 |
CN110659529B (zh) * | 2019-09-03 | 2023-06-02 | 珠海市杰理科技股份有限公司 | 条形码识别方法、装置、计算机设备和存储介质 |
CN112949360A (zh) * | 2019-12-11 | 2021-06-11 | 广州市久邦数码科技有限公司 | 一种视频换脸方法和装置 |
CN111797646B (zh) * | 2020-07-08 | 2021-06-29 | 北京京东振世信息技术有限公司 | 条形码识别方法及终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1934483A (zh) * | 2003-11-13 | 2007-03-21 | 计量仪器股份有限公司 | 支持窄域和宽域模式照明和图像捕捉的手持式基于成像的条形码符号阅读器 |
CN101882205A (zh) * | 2010-06-01 | 2010-11-10 | 福建新大陆电脑股份有限公司 | 一维条码图像扫描方法 |
CN103336938A (zh) * | 2013-06-05 | 2013-10-02 | 华南理工大学 | 一种基于一维条形码图像的识别方法 |
CN104680111A (zh) * | 2014-06-26 | 2015-06-03 | 赫盛光电(上海)有限公司 | 影像式高速条码扫描方法 |
CN107392078A (zh) * | 2017-06-14 | 2017-11-24 | 深圳市百富智能新技术有限公司 | 多角度扫描的方法、终端设备及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI560620B (en) * | 2016-01-20 | 2016-12-01 | Qisda Corp | Barcode decoding method |
-
2018
- 2018-01-10 CN CN201810023820.0A patent/CN108256375B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1934483A (zh) * | 2003-11-13 | 2007-03-21 | 计量仪器股份有限公司 | 支持窄域和宽域模式照明和图像捕捉的手持式基于成像的条形码符号阅读器 |
CN101882205A (zh) * | 2010-06-01 | 2010-11-10 | 福建新大陆电脑股份有限公司 | 一维条码图像扫描方法 |
CN103336938A (zh) * | 2013-06-05 | 2013-10-02 | 华南理工大学 | 一种基于一维条形码图像的识别方法 |
CN104680111A (zh) * | 2014-06-26 | 2015-06-03 | 赫盛光电(上海)有限公司 | 影像式高速条码扫描方法 |
CN107392078A (zh) * | 2017-06-14 | 2017-11-24 | 深圳市百富智能新技术有限公司 | 多角度扫描的方法、终端设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108256375A (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108256375B (zh) | 一种一维条形码扫描方法 | |
CN108920992B (zh) | 一种基于深度学习的医药标签条码的定位与识别方法 | |
CN107633192B (zh) | 一种基于机器视觉的复杂背景下条形码分割与识读方法 | |
EP3309704B1 (en) | Two-dimensional code partitioning and decoding method and system | |
EP3462372B1 (en) | System and method for detecting optical codes with damaged or incomplete finder patterns | |
CN105046252B (zh) | 一种人民币冠字码识别方法 | |
US7181066B1 (en) | Method for locating bar codes and symbols in an image | |
US9224026B2 (en) | Automatic system and method for tracking and decoding barcode by portable devices | |
US7636483B2 (en) | Code type determining method and code boundary detecting method | |
US5276315A (en) | Method and apparatus for processing low resolution images of degraded bar code symbols | |
US9286501B2 (en) | Method and device for identifying a two-dimensional barcode | |
KR20060100376A (ko) | 물체 윤곽 이미지를 분석하기 위한 방법 및 이미지 처리장치, 물체를 검출하기 위한 방법 및 이미지 처리 장치,산업용 비전 장치, 스마트 카메라, 이미지 디스플레이,보안 시스템, 및 컴퓨터 프로그램 제품 | |
CN101398895A (zh) | 一种数据矩阵(dm)二维条形码识别的图像预处理方法 | |
CN111461131B (zh) | 身份证号码信息识别方法、装置、设备及存储介质 | |
US9652652B2 (en) | Method and device for identifying a two-dimensional barcode | |
CN113705268A (zh) | 一种二维码定位方法及系统 | |
CN110009615B (zh) | 图像角点的检测方法及检测装置 | |
CN112364862B (zh) | 一种基于直方图相似度的扰动变形汉字图片匹配的方法 | |
Bodnár et al. | A novel method for barcode localization in image domain | |
CN110263597B (zh) | 一种快速准确的qr码校正方法及系统 | |
CN113537216B (zh) | 一种点阵字体文本行倾斜校正方法及装置 | |
CN113159031B (zh) | 一种手写文本检测方法、装置及存储介质 | |
Chethan et al. | Graphics separation and skew correction for mobile captured documents and comparative analysis with existing methods | |
CN110097065B (zh) | 一种基于FreeMan链码的直线检测方法及终端 | |
CN114757219A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180814 Address after: 214000 Room 501, 70 building, Hengsheng science and Technology Park, 1588 Zhonghui Avenue, Huishan District, Wuxi, Jiangsu. Applicant after: Qian Zhiming Address before: 214181 3 floor, 360 Kai Jie bridge, Huishan District, Wuxi, Jiangsu. Applicant before: A letter for science and Technology Co Ltd |
|
GR01 | Patent grant | ||
GR01 | Patent grant |