CN112241641B - 对条形码的解码方法、终端设备及存储介质 - Google Patents
对条形码的解码方法、终端设备及存储介质 Download PDFInfo
- Publication number
- CN112241641B CN112241641B CN201910652522.2A CN201910652522A CN112241641B CN 112241641 B CN112241641 B CN 112241641B CN 201910652522 A CN201910652522 A CN 201910652522A CN 112241641 B CN112241641 B CN 112241641B
- Authority
- CN
- China
- Prior art keywords
- sequence
- image
- barcode
- decoding
- bar
- 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/146—Methods for optical code recognition the method including quality enhancement steps
-
- 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/1443—Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
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)
- Telephone Function (AREA)
Abstract
本申请提出了对条形码的解码方法、终端设备及存储介质。其中,一种对条形码的解码方法,包括:通过旋转镜头拍摄与一个条形码有关的图像序列,其中,所述图像序列中不同帧图像包含所述条形码中的不同区域;定位所述图像序列中每帧图像中的条码区域;确定每帧图像中的条码区域对应的码字索引号的序列;拼接所述每帧图像中的条码区域对应的码字索引号的序列,而得到所述条形码的码字索引号的序列;根据所述条形码的码字索引号的序列,确定所述条形码的识别结果。
Description
技术领域
本申请涉及图像处理技术领域,特别涉及对条形码的解码方法、终端设备及存储介质。
背景技术
条形码(barcode)是将宽度不等的多个黑条和空白(白条),按照一定的编码规则排列,用以表达一组信息的图形标识符。条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图。这里,黑条和白条可以统称为条空。在一些应用场景中,条形码的长度比较长。镜头在扫码时,需要调节焦距使得条形码处于视野范围内。由于条形码的长度较长,拍摄的图像中条形码的占比会比较小。这样条码的PPM(码字中最小模块包含的像素数量)会比较小,条码清晰度较低,而使得条码不便于被识别。
发明内容
本申请提出了对条形码的解码方法、终端设备及存储介质,能够提高对条形码的识别能力。
根据本申请一个方面,提供一种对条形码的解码方法,包括:
通过旋转镜头拍摄获取与一个条形码有关的图像序列,其中,所述图像序列中不同帧图像包含所述条形码中的不同区域;
定位所述图像序列中每帧图像中的条码区域;
确定所述每帧图像中的条码区域对应的码字索引号的序列;
拼接所述每帧图像中的条码区域对应的码字索引号的序列,而得到所述条形码的码字索引号的序列;
根据所述条形码的码字索引号的序列,确定所述条形码的识别结果。
在一些实施例中,所述通过旋转镜头拍摄获取关于一个条形码的图像序列,包括:控制所述镜头的视野范围从所述条形码的第一侧移动到第二侧而遍历所述条形码,并多次采集图像,得到所述图像序列。
在一些实施例中,所述定位所述图像序列中每帧图像的条码区域,包括:
根据高斯背景建模方式,确定所述图像序列中相邻帧的差异;
根据所述差异确定图像序列中每帧图像的运动区域,所述运动区域包含所述条码区域;
从每帧图像的运动区域中提取条码区域。
在一些实施例中,所述从每帧图像的运动区域中提取条码区域,包括:
基于边缘检测方式,确定每帧图像的运动区域的梯度图;
基于大津法方式,对每帧图像的运动区域的梯度图进行二值化操作,得到每帧图像的运动区域的二值图;
确定每帧图像的运动区域的二值图中连通域,得到每帧图像的运动区域的条码区域。
在一些实施例中,所述确定所述每帧图像中的条码区域对应的码字索引号的序列,包括:
确定每帧图像中的条码区域中每个条空的参数信息,其中,每个条空的参数信息包括条空的宽度和条空的位置;
对于任一帧图像中的条码区域,将该条码区域中多个黑条分别作为一个译码起点;
根据该条码区域中每个条空的参数信息,分别对每个译码起点对应的条码序列,执行一次译码操作,得到每个译码起点对应的码字索引号的序列,其中,每个译码起点对应的条码序列为该条码区域中以该译码起点为开始符号的子序列;
从每个译码起点对应的码字索引号的序列中,选定置信度最高的码字索引号的序列作为该条码区域对应的码字索引号的序列。
在一些实施例中,所述对于任一帧图像中的条码区域,将该条码区域中多个黑条分别作为一个译码起点,包括:根据单个码字包含的黑条总数,将该条码区域左侧的多个连续的黑条分别作为一个译码起点,所述多个连续的黑条的数量与所述黑条总数相同。
在一些实施例中,所述根据该条码区域中每个条空的参数信息,分别对每个译码起点对应的条码序列,执行一次译码操作,得到每个译码起点对应的码字索引号的序列,包括:
对于任一个译码起点对应的条码序列,根据该条码序列中每个条空的参数信息和单个码字包含的条空数量,对该条码序列中条空进行分组而得到多组条空,每组条空的条空数量与单个码字包含的条空数量一致;
确定所述多组条空中每组条空对应的码字索引号,而得到与该译码起点对应的码字索引号的序列。
在一些实施例中,所述确定所述多组条空中每组条空对应的码字索引号,而得到与该译码起点对应的码字索引号的序列,包括:通过相似边译码方式对每组条空进行译码,而得到每组条空的码字索引号;将每组条空的码字索引号组成的序列作为该译码起点对应的码字索引号的序列。
在一些实施例中,所述通过相似边译码方式对每组条空进行译码,而得到每组条空的码字索引号,包括:在对所述多组条空中任一组条空译码失败时,为该组条空设置一个预定的码字索引号;
所述从每个译码起点对应的码字索引号的序列中,选定置信度最高的码字索引号的序列作为该条码区域对应的码字索引号的序列,包括:
将所述预定的码字索引号的置信度设置为0;
在所述多组条空中任一组条空译码成功时,计算该组条空的码字索引号的置信度;
确定每个译码起点对应的码字索引号的序列中码字索引号的置信度总和;
将置信度总和最高的码字索引号的序列作为置信度最高的码字索引号的序列。
在一些实施例中,所述拼接所述图像序列中每帧图像的条码区域对应的码字索引号的序列,而得到所述条形码的码字索引号的序列,包括:
对于所述图像序列中任意相邻的两帧图像,确定所述两帧图像中第一图像对应的码字索引号的序列与第二图像对应的码字索引号的序列的重合区域;
将所述两帧图像的码字索引号的序列在所述重合区域进行合并,并拼接所述两帧图像的码字索引号的序列。
根据本申请一个方面,提供一种终端设备,包括:镜头;
处理器,用于执行根据本申请的对条形码的解码方法。
根据本申请一个方面,提供一种存储介质,存储有程序,当所述程序被处理器执行时,使得所述处理器执行根据本申请的对条形码的解码方法。
综上,根据本申请的对条形码的解码方案,通过在单帧图像中仅拍摄条形码的部分区域,可以提高单帧图像中条码区域的清晰度(即提高单帧图像中条空的PPM),从而提高了对单帧图像中条码区域的识别率。在此基础上,根据本申请的解码方案可以解析单帧图像中条码区域的码字索引号的序列,并对多帧图像对应的码字索引号的序列进行拼接,而得到一个完整条形码对应的码字索引号的序列。由于提高了单帧图像中条码区域的清晰度,根据本申请的解码方案可以提高对条形码的识别率。
附图说明
图1示出了根据本申请一些实施例的应用场景的示意图;
图2示出了根据本申请一些实施例的对条形码的解码方法200的流程图;
图3示出了根据本申请一些实施例的获取图像序列的示意图;
图4示出两帧图像的码字索引号的序列的拼接过程;
图5示出了根据本申请一些实施例的提取运动区域中条码区域的方法500的流程图;
图6A示出了根据本申请一些实施例的解析每帧图像中的条码区域的方法600的流程图;
图6B示出了根据本申请一些实施例的执行多次译码操作的示意图;
图7示出了根据本申请一些实施例的执行译码操作的方法700的流程图;
图8示出了根据本申请一些实施例的确定条码区域对应的码字索引号的序列的方法800 的流程图;
图9示出了根据本申请一些实施例终端设备的示意图。
具体实施方式
为使本申请的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本申请进一步详细说明。
图1示出了根据本申请一些实施例的应用场景的示意图。如图1所示,应用场景中的对象1上边设置有一维条形码2。这里,对象1例如为包裹等物品。
在一些实施例中,终端设备4可以对条形码2进行扫描和解码。这里,终端设备4为固定的摄像头,距离条形码的高度为h1。终端设备4可以在单帧图像中拍摄条形码2的完整图像。这样,终端设备4可以对一个完整的条形码进行解码。
在一些实施例中,终端设备3可以对条形码2进行扫描。终端设备3例如可以是相机、摄像机或者移动电话等设备,本申请对此不做限制。为了提高拍摄的图像中条空的PPM,终端设备3可以距离条形码的高度为h2。这里,h2的高度低于h1。这样,终端设备3可以通过旋转镜头拍摄条形码2的多帧图像。虚线的图形3’为终端设备3转动镜头后的位置。每帧图像可以拍摄条形码的一部分区域,也可以称为拍摄条形码的一个分段。换言之,每帧图像可以包括条形码中的一部分条空。不同帧图像可以包括条形码2的不同区域。多帧图像中关于条形码的区域(也可以称为条码区域)可以组成一个完整的条形码2。在此基础上,终端设备3可以利用多帧图像中条码区域,对条形码进行解码。终端设备3可以避免在单帧图像中包含一个完整的条形码2。因此,相比终端设备4的解码方式(即,获取包含完整条形码的单帧图像并解码),由于终端设备3可旋转,当终端设备3替换终端设备4时,可以降低对安装高度的要求,而且由于可旋转可以近距离拍摄清晰的多个条形码的片段,有利于提高单帧图像中条码区域的清晰度,进而能够提高对条形码2的识别率。下面结合图2对条形码的解码方式进一步说明。
图2示出了根据本申请一些实施例的对条形码的解码方法200的流程图。方法200例如可以由终端设备3执行,但不限于此。
在步骤S201中,通过旋转镜头拍摄与一个条形码有关的图像序列。其中,图像序列中不同帧图像包含条形码中的不同区域。换言之,图像序列中多帧图像中条码区域可以拼接成一个完整的条形码。这里,步骤S201可以拍摄经过镜头的视野范围的条形码,得到图像序列。
在一些实施例中,终端设备3可以控制镜头的视野范围从条形码的第一侧移动到第二侧而遍历条形码,并多次采集图像,得到图像序列。
在一些实施例中,条形码的第一侧例如为条形码的左侧,第二侧为条形码的右侧。终端设备3可以控制镜头从朝向条形码的左侧,转动至朝向条形码的右侧。终端设备3例如可以通过云台等驱动机构来控制镜头的转动。例如,图3示出了根据本申请一些实施例的获取图像序列的示意图。镜头的视野范围为301时,终端设备3采集的一帧图像为302。镜头的视野范围为303时,终端设备3采集的一帧图像为304。镜头的视野范围为305时,终端设备3采集的一帧图像为306。图像302包含条形码左侧的条码区域。图像304包含条形码中部的条码区域。图像306包含条形码右侧的条码区域。图像302与图像304具有重合区域,图像 304与图像306具有重合区域。通过合并重合区域,图像302中条码区域、图像304中条码区域和图像306中条码区域可以拼接成一个完整的条形码。
在一些实施例中,条形码的第一侧例如为条形码的右侧,第二侧为条形码的左侧。终端设备3可以控制镜头从朝向条形码的右侧,转动至朝向条形码的左侧。换言之,终端设备3 可以从右向左遍历并拍摄条形码。
在一些实施例中,终端设备3能够以平动的方式从条形码的第一侧移动到第二侧,并采集图像序列。例如,终端设备3可以布置到一个滑轨上,并通过在滑轨上移动而镜头的视野范围。
在一些实施例中,终端设备3可以保持镜头位置不变。条形码可以移动经过镜头的视野范围。例如,终端设备3设置在传送带的上方。在设置有条形码的物品从传送带上经过镜头的视野范围期间,终端设备3可以通过镜头采集条形码的图像序列。
在步骤S202中,定位图像序列中每帧图像中的条码区域。步骤S202可以采用各种条形码提取方式,确定每帧图像中条码区域。在一些实施例中,步骤S202可以根据高斯背景建模方式,确定图像序列中相邻帧的差异。在此基础上,步骤S202可以根据差异确定图像序列中每帧图像的运动区域。运动区域可以包含条码区域。步骤S202可以从每帧图像的运动区域中提取条码区域。
在步骤S203中,确定每帧图像中的条码区域对应的码字索引号的序列。这里,由于条码区域是一个条形码的部分区域,终端设备3在执行步骤S203之前,并不能确定条码区域中条空在完整条形码中的位置。因此,终端设备3并不知道将条码区域中哪个黑条作为译码起点。这里,条码区域中处于译码起点之前(即译码起点的左侧)的条空被认为是不完整的码字(即码字的一部分条空)。每个码字由连续的多个条空组成。例如,128码制的条形码中一个码字包括6个条空。128码制的一个完整的码字包含该码字对应的6个条空。
在一些实施例中,为了对条码区域进行正确译码,步骤S203可以尝试分别将多个黑条作为译码起点,分别得到每个译码起点对应的码字索引号的序列,在此基础上,步骤S203可以将置信度最高(即最可能是正确译码方式)的码字索引号的序列,作为条码区域对应的码字索引号的序列。
在步骤S204中,拼接图像序列中每帧图像的条码区域对应的码字索引号的序列,而得到条形码的码字索引号的序列。换言之,步骤S204可以对多个条码区域的码字索引号的序列进行拼接,而得到一个完整的条形码对应的码字索引号的序列。在一些实施例中,对于所述图像序列中任意相邻的两帧图像,步骤S204可以确定两帧图像中第一图像对应的码字索引号的序列与第二图像对应的码字索引号的序列的重合区域。其中,第一图像的采集时间早于第二图像。步骤S204可以对两帧图像各自的码字索引号的序列在重合区域进行合并,并拼接所述两帧图像的码字索引号的序列。综上,步骤S204通过拼接多帧图像的码字索引号的序列,可以得到条形码对应的码字索引号的序列。例如,图4示出两帧图像的码字索引号的序列的拼接过程。在图4中,第一图像的码字索引号的序列为M1:{C1-1,C1-2,C1-3,C1-4,C1-5}。第二图像的码字索引号的序列为M2:{C2-1,C2-2,C2-3,C2-4,C2-5}。步骤S204可以确定M1中子序列m1:{C1-4,C1-5}与M2中子序列m2:{C2-1,C2-2}相同。即子序列m1和m2为重合区域。步骤S204可以合并子序列m1和m2,并将M1和M2拼接为M3:{C1-1,C1-2,C1-3,C1-4,C1-5, C2-3,C2-4,C2-5}。
在步骤S205中,根据条形码的码字索引号的序列,确定条形码的识别结果。这里,步骤 S205可以确定条形码对应的码制,根据码制对应的解码规则,确定条形码的识别结果。这里,条形码的解码规则例如可以是128码的解码规则、39码的解码规则、93码的解码规则、EAN 码的解码规则,但不限于此。在一些实施例中,ASCII码表例如包括A,B和C三种字符集。步骤S205可以根据码字索引号的序列中的起始符确定ASCII码表的一种字符集。在此基础上,步骤S205可以确定码字索引号的序列中各索引号对应的字符。例如连续的三个索引号为 18,30和17,步骤S205可以确定三个索引号的识别结果为字符串‘2>1’。
综上,根据本申请的对条形码的解码方法200,通过在单帧图像中仅拍摄条形码的部分区域,可以提高单帧图像中条码区域的清晰度(即提高单帧图像中条空的PPM),从而提高了对单帧图像中条码区域的识别率。在此基础上,解码方法200可以解析单帧图像中条码区域的码字索引号的序列,并对多帧图像对应的码字索引号的序列进行拼接,而得到一个完整条形码对应的码字索引号的序列。由于提高了单帧图像中条码区域的清晰度,解码方法200 可以提高对条形码的识别率。
在一些实施例中,步骤S202中提取运动区域中条码区域的操作可以实施为方法500。
如图5所示,在步骤S501中,基于边缘检测方式,确定每帧图像的运动区域的梯度图。这里,边缘检测方式例如为罗伯特(robert)算子或索贝尔(sobel)算子等边缘提取方式。步骤S501提取的梯度图中,黑条的边缘处梯度较大。
在步骤S502中,基于大津法方式,对每帧图像的运动区域的梯度图进行二值化操作,得到每帧图像的运动区域的二值图。这里,步骤S502可以将梯度图中各像素点的梯度值与设定的梯度阈值进行比较。步骤S502可以将大于梯度阈值的像素点的灰度值设置为255。反之,步骤S502可以将小于梯度阈值的像素点的灰度值设置为0。另外,步骤S502还可以采用大津法之外的其他二值化方式获取二值图,本申请对此不做限制。
在步骤S503中,确定每帧图像的运动区域的二值图中连通域,得到每帧图像的运动区域的条码区域。这里,步骤S503可以确定灰度值为255像素点对应的连通域。即,步骤S503 可以将封闭灰度值255的像素点围成的每个封闭区域作为一个连通域。这里,每个连通域对应一个黑条。步骤S503通过确定黑条对应的区域,可以得到条码区域。
在一些实施例中,步骤S203可以实施为方法600。
如图6A所示,在步骤S601中,确定每帧图像中的条码区域中每个条空的参数信息,其中,每个条空的参数信息包括条空的宽度和条空的位置。条码区域中黑条和白条统称为条空。每个条空的参数信息包括条空的宽度和条空的位置。例如,图6B示出了条码区域610中部分条空的宽度值。其中,条空601的宽度为w1,条空602的宽度为w2,条空603的宽度为w3,条空604的宽度为w4,条空605的宽度为w5,条空606的宽度为w6。每个条空的位置例如可以用条空的中心点的坐标表示。条空的中心点可以称为条空点。
在步骤S602中,对于任一帧图像中的条码区域,将该条码区域中多个黑条分别作为一个译码起点。在一些实施例中,步骤S602可以根据单个码字包含的黑条总数和条空的位置,将该条码区域左侧的多个连续的黑条分别作为一个译码起点。这里,多个连续的黑条的数量与单个码字的黑条总数相同。例如,128码的单个码字的条空总数为6。单个码字的黑条总数为 3个。这样,由于多个连续的黑条的数量与单个码字的黑条总数相同,步骤S602可以保证多个译码起点中一个译码起点为正确的译码起点。
在步骤S603中,根据该条码区域中每个条空的参数信息,分别对每个译码起点对应的条码序列执行一次译码操作,得到每个译码起点对应的码字索引号的序列。其中,每个译码起点对应的条码序列为该条码区域中以该译码起点为开始符号的子序列。换言之,一个译码起点对应的条码序列为条码区域去掉译码起点左侧的条空之后剩余的序列。
在步骤S604中,从每个译码起点对应的码字索引号的序列中,选定置信度最高的码字索引号的序列作为该条码区域对应的码字索引号的序列。
综上,方法600通过从多个译码起点开始译码,并且筛选出置信度最高的索引号的序列,从而可以确定对条码区域的正确译码方式。
在一些实施例中,步骤S603可以实施为方法700。
如图7所示,在步骤S701中,对于任一个译码起点对应的条码序列,根据该条码序列中每个条空的参数信息和单个码字包含的条空数量,对该条码序列中条空进行分组,得到多组条空。每组条空的条空数量与单个码字包含的条空数量一致。
在步骤S702中,确定多组条空中每组条空对应的码字索引号,而得到与该译码起点对应的码字索引号的序列。在一些实施例中,步骤S702可以通过相似边译码方式等译码方式对每组条空进行译码,而得到每组条空的码字索引号。在此基础上,步骤S702可以将每组条空的码字索引号组成的序列作为该译码起点对应的码字索引号的序列。
在一些实施例中,步骤S702可以通过相似边译码方式,确定每组条空对应的宽度序列,然后查询编码表中每组条空的宽度序列对应的索引号。这里,编码表例如为ASCII码对照表。一个包含6个条空的分组的宽度序列例如为“123221”。步骤S702可以确定“123221”对应的索引号为30。在一些实施例中,步骤S702在对任一组条空译码失败时,为该组条空设置一个预定的码字索引号。这里,预定的码字索引号为一个默认的索引号,表示译码失败。
在一些实施例中,步骤S604可以实施为方法800。如图8所示,在步骤S801中,将预定的码字索引号(即)的置信度设置为0。即,步骤S801可以将译码失败的每组条空的码字索引号的置信度设置为0。
在步骤S802中,在对多组条空中任一组条空译码成功时,计算该组条空的码字索引号的置信度。这里,步骤S802可以根据一组条空的中每个条空的标准宽度与该组条空中每个条空的实际宽度之间的误差,确定该组条空的码字索引号的置信度。
在步骤S803中,确定每个译码起点对应的码字索引号的序列中码字索引号的置信度总和。
在步骤S804中,将置信度总和最高的码字索引号的序列作为置信度最高的码字索引号的序列。
综上,单帧图像中条码区域为条形码的部分区域,并不是一个完整的条形码。因此,在译码之前,终端设备3并不能确定条码区域中条空在完整条形码中的位置。为了提高对条码区域进行译码的准确率,本申请的实施例可以通过从多个译码起点对条码区域进行分组和译码,从而得到多种码字索引号的序列。在此基础上,本申请的实施例可以选定置信度最高的一种码字索引号的序列作为条码区域对应的码字索引号的序列。
下面结合图6B对方法600的实施方式进行举例说明。图6B中条码区域610例如为128 码制的条形码的一部分。步骤S502可以确定黑条601、603和605为3个译码起点。针对黑条601,步骤S503可以执行一次译码操作,得到的索引号的序列为S1:{C1-1,C1-2,C1-3,C1-4, C1-5}。针对黑条603,步骤S503可以执行一次译码操作,得到的索引号的序列为S2:{C2-1, C2-2,C2-3,C2-4}。针对黑条605,步骤S503可以执行一次译码操作,得到的索引号的序列为S3:{C3-1,C3-2,C3-3,C3-4}。步骤S504可以计算S1、S2和S3各自的置信度。如果S1的置信度最高,可以确定S1为条码区域610对应的码字索引号的序列。
图9示出了根据本申请一些实施例的终端设备3的示意图图。如图9所示,该终端设备 3包括一个或者多个处理器(CPU)902、通信模块904、存储器906、图像采集模块910,以及用于互联这些组件的通信总线908。
处理器902可通过通信模块904接收和发送数据以实现网络通信和/或本地通信。
图像采集模块910包括一个或多个图像传感器912和镜头914。图像传感器912可以拍摄经过镜头914的视野范围的条形码。
存储器906可以是高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
存储器906存储处理器902可执行的指令集,包括:
操作系统916,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
应用918,包括用于实现上述对条形码的解码方法各种程序,这种程序能够实现上述各实例中的处理流程,比如可以包括图2的对条形码的解码方法200。
另外,本申请的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备 (如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此本申请还公开了一种非易失性存储介质,其中存储有程序。该程序包括指令,所述指令当由处理器执行时,使得终端设备3执行根据本申请的对条形码的解码方法200。
另外,本申请所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌微控制器等来实现。因此这种可以实现本申请所述方法的硬件也可以构成本申请。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (12)
1.一种对条形码的解码方法,其特征在于,包括:
通过旋转镜头拍摄与一个条形码有关的图像序列,其中,所述图像序列中不同帧图像包含所述条形码中的不同区域;
定位所述图像序列中每帧图像中的条码区域;
确定所述每帧图像中的条码区域对应的码字索引号的序列;
拼接所述每帧图像中的条码区域对应的码字索引号的序列,而得到所述条形码的码字索引号的序列;以及
根据所述条形码的码字索引号的序列,确定所述条形码的识别结果。
2.如权利要求1所述的方法,其特征在于,所述通过旋转镜头拍摄与一个条形码有关的图像序列,包括:
控制所述镜头的视野范围从所述条形码的第一侧移动到第二侧而遍历所述条形码,并多次采集图像,得到所述图像序列。
3.如权利要求1所述的方法,其特征在于,所述定位所述图像序列中每帧图像的条码区域,包括:
根据高斯背景建模方式,确定所述图像序列中相邻帧的差异;
根据所述差异确定图像序列中每帧图像的运动区域,所述运动区域包含所述条码区域;
从每帧图像的运动区域中提取条码区域。
4.如权利要求3所述的方法,其特征在于,所述从每帧图像的运动区域中提取条码区域,包括:
基于边缘检测方式,确定每帧图像的运动区域的梯度图;
基于大津法方式,对每帧图像的运动区域的梯度图进行二值化操作,得到每帧图像的运动区域的二值图;
确定每帧图像的运动区域的二值图中连通域,得到每帧图像的运动区域的条码区域。
5.如权利要求1所述的方法,其特征在于,所述确定所述每帧图像中的条码区域对应的码字索引号的序列,包括:
确定每帧图像中的条码区域中每个条空的参数信息,其中,每个条空的参数信息包括条空的宽度和条空的位置;
对于任一帧图像中的条码区域,将该条码区域中多个黑条分别作为一个译码起点;
根据该条码区域中每个条空的参数信息,分别对每个译码起点对应的条码序列执行一次译码操作,得到每个译码起点对应的码字索引号的序列,其中,每个译码起点对应的条码序列为该条码区域中以该译码起点为开始符号的子序列;
从每个译码起点对应的码字索引号的序列中,选定置信度最高的码字索引号的序列作为该条码区域对应的码字索引号的序列。
6.如权利要求5所述的方法,其特征在于,所述对于任一帧图像中的条码区域,将该条码区域中多个黑条分别作为一个译码起点,包括:
根据单个码字包含的黑条总数和该条码区域中条空的位置,将该条码区域左侧的多个连续的黑条分别作为一个译码起点,所述多个连续的黑条的数量与所述黑条总数相同。
7.如权利要求5所述的方法,其特征在于,所述根据该条码区域中每个条空的参数信息,分别对每个译码起点对应的条码序列,执行一次译码操作,得到每个译码起点对应的码字索引号的序列,包括:
对于任一个译码起点对应的条码序列,根据该条码序列中每个条空的参数信息和单个码字包含的条空数量,对该条码序列中条空进行分组而得到多组条空,每组条空的条空数量与单个码字包含的条空数量一致;
确定所述多组条空中每组条空对应的码字索引号,而得到与该译码起点对应的码字索引号的序列。
8.如权利要求7所述的方法,其特征在于,所述确定所述多组条空中每组条空对应的码字索引号,而得到与该译码起点对应的码字索引号的序列,包括:
通过相似边译码方式对每组条空进行译码,而得到每组条空的码字索引号;
将每组条空的码字索引号组成的序列作为该译码起点对应的码字索引号的序列。
9.如权利要求8所述的方法,其特征在于,所述通过相似边译码方式对每组条空进行译码,而得到每组条空的码字索引号,包括:在对所述多组条空中任一组条空译码失败时,为该组条空设置一个预定的码字索引号;
所述从每个译码起点对应的码字索引号的序列中,选定置信度最高的码字索引号的序列作为该条码区域对应的码字索引号的序列,包括:
将所述预定的码字索引号的置信度设置为0;
在所述多组条空中任一组条空译码成功时,计算该组条空的码字索引号的置信度;
确定每个译码起点对应的码字索引号的序列中码字索引号的置信度总和;
将置信度总和最高的码字索引号的序列作为置信度最高的码字索引号的序列。
10.如权利要求1所述的方法,其特征在于,所述拼接所述图像序列中每帧图像的条码区域对应的码字索引号的序列,而得到所述条形码的码字索引号的序列,包括:
对于所述图像序列中任意相邻的两帧图像,确定所述两帧图像中第一图像对应的码字索引号的序列与第二图像对应的码字索引号的序列的重合区域;
将所述两帧图像的码字索引号的序列在所述重合区域进行合并,并拼接所述两帧图像的码字索引号的序列。
11.一种终端设备,包括:
镜头;
处理器,用于执行如权利要求1-10中任一项所述的对条形码的解码方法。
12.一种存储介质,存储有程序,当所述程序被处理器执行时,使得所述处理器执行如权利要求1-10中任一项所述的对条形码的解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910652522.2A CN112241641B (zh) | 2019-07-19 | 2019-07-19 | 对条形码的解码方法、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910652522.2A CN112241641B (zh) | 2019-07-19 | 2019-07-19 | 对条形码的解码方法、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112241641A CN112241641A (zh) | 2021-01-19 |
CN112241641B true CN112241641B (zh) | 2022-07-05 |
Family
ID=74168173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910652522.2A Active CN112241641B (zh) | 2019-07-19 | 2019-07-19 | 对条形码的解码方法、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112241641B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116842977B (zh) * | 2023-08-31 | 2023-11-17 | 中科微至科技股份有限公司 | 条形码识别方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1738235A (zh) * | 2005-09-12 | 2006-02-22 | 西安交通大学 | 基于混沌特性的图像防伪方法 |
CN1917658A (zh) * | 2006-08-01 | 2007-02-21 | 杭州镭星科技有限公司 | 一种从单目图像序列生成立体图像序列的方法 |
CN102902710A (zh) * | 2012-08-08 | 2013-01-30 | 成都理想境界科技有限公司 | 基于条形码的增强现实方法、系统及移动终端 |
CN109508572A (zh) * | 2017-09-15 | 2019-03-22 | 杭州海康威视数字技术股份有限公司 | 一种物体位姿检测方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6393226B2 (ja) * | 2015-03-31 | 2018-09-19 | 日本電産サンキョー株式会社 | スタック型バーコード読取装置およびスタック型バーコード読取方法 |
-
2019
- 2019-07-19 CN CN201910652522.2A patent/CN112241641B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1738235A (zh) * | 2005-09-12 | 2006-02-22 | 西安交通大学 | 基于混沌特性的图像防伪方法 |
CN1917658A (zh) * | 2006-08-01 | 2007-02-21 | 杭州镭星科技有限公司 | 一种从单目图像序列生成立体图像序列的方法 |
CN102902710A (zh) * | 2012-08-08 | 2013-01-30 | 成都理想境界科技有限公司 | 基于条形码的增强现实方法、系统及移动终端 |
CN109508572A (zh) * | 2017-09-15 | 2019-03-22 | 杭州海康威视数字技术股份有限公司 | 一种物体位姿检测方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于投影算法的二维条码识别;刘宁钟等;《计算机工程》;20020920(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112241641A (zh) | 2021-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5880451A (en) | System and method for OCR assisted bar code decoding | |
CN105512587B (zh) | 用于追踪光代码的系统和方法 | |
US9600731B2 (en) | Image processing apparatus, image processing method and computer-readable storage medium | |
CN109583535B (zh) | 一种基于视觉的物流条形码检测方法、可读存储介质 | |
EP0852520B1 (en) | System and method for reading package information | |
US9053361B2 (en) | Identifying regions of text to merge in a natural image or video frame | |
US9934444B2 (en) | Image processing apparatus, image processing method and computer-readable storage medium | |
CN109255271B (zh) | 用于读取光码的光电代码阅读器和方法 | |
US20120151293A1 (en) | Sequenced Two-Dimensional Codes in Video | |
US20070140564A1 (en) | 2-Dimensional code region extraction method, 2-dimensional code region extraction device, electronic device, 2-dimensional code region extraction program, and recording medium containing the program | |
JPH0612515A (ja) | Ccd/cmdカメラを使用して二次元バーコードを復号する方法及び装置 | |
CN110765795B (zh) | 二维码识别方法、装置及电子设备 | |
US10909341B2 (en) | Data processing reduction in barcode reading systems with overlapping frames | |
US6941026B1 (en) | Method and apparatus using intensity gradients for visual identification of 2D matrix symbols | |
CN112241641B (zh) | 对条形码的解码方法、终端设备及存储介质 | |
CN1848136A (zh) | 对条形码图像解码的方法和系统 | |
CN113392669A (zh) | 一种图像信息检测方法、检测装置及存储介质 | |
CN111523331B (zh) | 一种二维码识别方法及装置 | |
US10706246B2 (en) | Optical information reading apparatus and optical information reading method | |
CN107609448B (zh) | 条码解码方法以及条码解码装置 | |
CN101833645A (zh) | 一种基于码字组合的条码解码方法 | |
US20160350928A1 (en) | System And Method For Reading Machine Readable Codes In Transportation And Logistic Applications | |
JP5482340B2 (ja) | バーコード読取装置、バーコード読み取り方法およびバーコード読み取りプログラム | |
JPH11184965A (ja) | 帳票識別登録装置 | |
CN114896999A (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 |