CN117350317B - 用于条码图像的译码方法、装置和电子设备 - Google Patents
用于条码图像的译码方法、装置和电子设备 Download PDFInfo
- Publication number
- CN117350317B CN117350317B CN202311649159.1A CN202311649159A CN117350317B CN 117350317 B CN117350317 B CN 117350317B CN 202311649159 A CN202311649159 A CN 202311649159A CN 117350317 B CN117350317 B CN 117350317B
- Authority
- CN
- China
- Prior art keywords
- error correction
- sub
- binarization
- correction block
- unit modules
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000012937 correction Methods 0.000 claims abstract description 416
- 238000005520 cutting process Methods 0.000 claims abstract description 18
- 238000012795 verification Methods 0.000 claims description 5
- 238000005070 sampling Methods 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- G06K7/1473—Methods for optical code recognition the method including quality enhancement steps error correction
-
- 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/1417—2D bar codes
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)
- Error Detection And Correction (AREA)
Abstract
本申请涉及条码识别技术领域,公开一种用于条码图像的译码方法、装置和电子设备。该译码方法包括:在条码图像的部分纠错块纠错成功的情况下,将条码图像的初始码图片区切割为多个子片区,并确定每一子片区中纠错成功的纠错块;根据子片区中纠错成功的纠错块确定子片区中纠错失败的纠错块的二值化阈值;按照子片区中纠错失败的纠错块的二值化阈值对子片区中纠错失败的纠错块重新进行纠错。通过重新确定的每一子片区中纠错失败的纠错块的二值化阈值,使得纠错块中单元模块二值化结果更加准确,从而提高对纠错失败的纠错块的纠错能力,进而提高条码图像译码的准确率。
Description
技术领域
本申请涉及条码识别技术领域,例如涉及一种用于条码图像的译码方法、装置和电子设备。
背景技术
条码图像具有数据容量大、纠错能力强、可靠性高等特点,应用十分广泛。条码图像的识别是条码应用中非常重要的一环。条码图像识别设备一般通过摄像头拍摄条码图像,通过条码识别算法对条码图像进行识别。条码识别算法一般包含定位、采样、二值化、纠错、译码等几个步骤。在通过摄像头拍摄条码图像时,所拍摄的图像一般是彩色或者灰度的,其中彩色图像一般也转成灰度图像进行识别。采样时,条码图像每个单元模块会采样得到一个灰度值,然后通过二值化阈值判断该单元模块是黑模块还是白模块。实际应用中难免有部分单元模块被误判,此时就需要靠纠错算法进行纠错。纠错成功后才能进行译码,完成条码图像的识别。
当条码数据容量较大时,相关技术通常将条码数据分割成多个纠错块,并对每一纠错块进行纠错。只有在全部纠错块纠错成功的情况下,才能实现条码图像译码成功,只要有一个纠错块纠错失败,条码图像就译码失败。
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:在实际应用中,条码图像可能存在光照不均、扩散、低对比度和模糊等各种情况,导致二值化出现较多错误,从而导致一些纠错块纠错失败,进而导致条码图像译码失败。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于条码图像的译码方法、装置和电子设备,以提高纠错块中单元模块二值化的准确率,从而提高条码图像译码的准确率。
在一些实施例中,用于条码图像的译码方法包括:在条码图像的部分纠错块纠错成功的情况下,将条码图像的初始码图片区切割为多个子片区,并确定每一子片区中纠错成功的纠错块;根据子片区中纠错成功的纠错块确定子片区中纠错失败的纠错块的二值化阈值;按照子片区中纠错失败的纠错块的二值化阈值对子片区中纠错失败的纠错块重新进行纠错。
可选地,根据子片区中纠错成功的纠错块确定子片区中纠错失败的纠错块的二值化阈值,包括:确定子片区中纠错成功的纠错块的白色单元模块的平均灰度值和黑色单元模块的平均灰度值;计算白色单元模块的平均灰度值和黑色单元模块的平均灰度值的灰度平均值;将灰度平均值作为子片区中纠错失败的纠错块的二值化阈值。
可选地,根据子片区中纠错成功的纠错块确定子片区中纠错失败的纠错块的二值化阈值,包括:获得子片区中纠错成功的纠错块的白色单元模块数量和黑色单元模块数量;根据白色单元模块数量和黑色单元模块数量,确定子片区中纠错失败的纠错块的二值化阈值。
可选地,根据白色单元模块数量和黑色单元模块数量,确定子片区中纠错失败的纠错块的二值化阈值,包括:在白色单元模块数量或黑色单元模块数量小于第一预设数量的情况下,将初始码图片区中纠错失败的纠错块的二值化阈值作为子片区中纠错失败的纠错块的二值化阈值;和/或,在白色单元模块数量和黑色单元模块数量均大于或等于第一预设数量的情况下,将子片区中纠错成功的纠错块的二值化阈值作为子片区中纠错失败的纠错块的二值化阈值。
可选地,按照如下方式确定子片区中纠错成功的纠错块的二值化阈值:根据子片区中纠错成功的纠错块的二值化原始阈值,确定子片区中纠错成功的纠错块的多个二值化更新阈值;按照多个二值化更新阈值对子片区中纠错成功的纠错块进行二值化并进行错误验证,确定每个二值化更新阈值所对应的子片区中纠错成功的纠错块中的错误单元模块数量;基于错误单元模块数量,确定子片区中纠错成功的纠错块的二值化阈值。
可选地,根据子片区中纠错成功的纠错块的二值化原始阈值,确定子片区中纠错成功的纠错块的多个二值化更新阈值,包括按照如下公式确定二值化更新阈值:
其中,R为二值化更新阈值,为二值化原始阈值,/>为边界阈值下限,/>为边界阈值上限。
可选地,基于错误单元模块数量,确定子片区中纠错成功的纠错块的二值化阈值,包括:确定多个错误单元模块数量中满足错误单元模块数量条件的目标错误单元模块数量;其中,错误单元模块数量条件包括错误单元模块数量最少,或者错误单元模块数量小于第二预设数量;确定目标错误单元模块数量所对应的目标二值化更新阈值;根据目标二值化更新阈值确定子片区中纠错成功的纠错块的二值化阈值。
可选地,将条码图像的初始码图片区切割为多个子片区,包括:获得条码图像的部分纠错块的纠错成功率;根据纠错成功率确定子片区的目标切割数量;按照目标切割数量,将条码图像的初始码图片区切割为多个子片区。
在一些实施例中,用于条码图像的译码装置包括处理器和存储有程序指令的存储器,处理器被配置为在运行所述程序指令时,执行如上述的用于条码图像的译码方法。
在一些实施例中,电子设备包括:电子设备本体;和,如上述的用于条码图像的译码装置,被安装于电子设备本体。
本公开实施例提供的用于条码图像的译码方法、装置和电子设备,可以实现以下技术效果:
通过将条码图像的初始码图片区切割为多个子片区,并确定每一子片区中纠错成功的纠错块,从而确定该子片区中纠错失败的纠错块的二值化阈值。由于纠错块中单元模块的二值化结果能够提供关于数据位的明确指示,使得纠错编码可以更加精确地检测和纠正错误。因此,通过重新确定的每一子片区中纠错失败的纠错块的二值化阈值,使得纠错块中单元模块二值化结果更加准确,从而提高对纠错失败的纠错块的纠错能力,进而提高条码图像译码的准确率。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的一个条码图像的示意图。
图2是本公开实施例提供的另一个条码图像的示意图。
图3是本公开实施例提供的一个用于条码图像的译码方法。
图4是本公开实施例提供的另一个用于条码图像的译码方法。
图5是本公开实施例提供的一个用于条码图像的译码装置。
图6是本公开实施例提供的另一个用于条码图像的译码装置。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
本申请提供的一种用于条码图像的译码方法,该条码图像主要包括二维条码。二维条码又称二维码,常见的二维条码为QRCode,QR全称Quick Response,译为快速响应。二维条码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。
如图1和图2所示,二维条码一般设置在一块二维的矩形区域中,包括寻像图形、格式信息、版本信息、定位图形和校正图形。其中,寻像图形包括三个相同的位置探测图形,分别位于二维条码左上角、右上角、左下角,每个位置探测图形由7×7个模块组成,二维条码的版本号越高,寻像图形在整个图案中所占比例越小。格式信息一般用于储存一些格式化资料,如二维条码的纠错等级和遮罩信息。二维条码的纠错等级一般包括L、M、Q、H四个等级。版本信息可用于指示二维条码的尺寸(或二维条码的码元数量),包括版本号。定位图形的水平和垂直定位图形分别为一个模块宽的一行和一列,由深色与浅色模块交替组成,其开始和结尾都是深色模块,用于确定符号的密度和版本,提供决定模块坐标的基准位置。校正图形作为一个固定的参照图形,在图像有一定程度损坏的情况下,译码软件可以通过它同步图像模块的坐标映像。每个校正图形由5×5模块组成。校正图形的数量视符号和版本号而定。
在二维条码数据容量较大的情况下,数据一般会被分割成多个纠错块。在所有纠错块均纠错成功的情况下,二维条码才能译码成功。在存在纠错块纠错失败的情况下,二维条码译码失败。图1提供了一种版本号为7,L级纠错的QR码结构示意图。该条码图像包括两个纠错块,在示意图中分别以1、2表示该单元模块属于哪个纠错块。图1中可以看出,两个纠错块较为均匀地分布于整个条码图像。图4提供了一种版本号为7,M级纠错的QR码结构示意图。该条码图像包括4个纠错块,在示意图中分别以1、2、3、4表示该单元模块属于哪个纠错块。图中可以看出,4个纠错块较为均匀地分布于整个条码图像。
在实际应用中,条码图像可能存在光照不均、扩散、低对比度和模糊等各种情况,导致二值化出现较多错误,从而导致一些纠错块纠错失败,进而导致条码图像译码失败。由于二值化阈值是对条码图像中的像素点进行分类的关键参数。因此,本公开实施例通过将条码图像的初始码图片区分割为多个子片区,并根据每一子片区中纠错成功的纠错块的二值化阈值合理确定该子片区中纠错失败的纠错块的二值化阈值,以将纠错失败的纠错块的像素点相对正确地分类为白色或黑色,从而在纠错过程中避免误判和漏判,提高了对纠错失败的纠错块的纠错能力。
结合图1和图2所示的条码图像,本公开实施例提供一种用于条码图像的译码方法。其中,本申请提供的译码方法的执行主体可以为处理器。如图3所示,该译码方法包括:
S301,处理器在条码图像的部分纠错块纠错成功的情况下,将条码图像的初始码图片区切割为多个子片区,并确定每一子片区中纠错成功的纠错块。
示例性地,多个子片区的数量可以设置为大于2。具体地,多个子片区的数量可以设置为2,4,6,8或10。更具体地,多个子片区的数量可以设置为4。
示例性地,将条码图像的初始码图片区等分切割为多个子片区。这样,由于子片区是均匀等分的,能够使得多个子片区的白色单元模块或黑色单元模块的数量相对均匀,从而能够更加准确的更新子片区中纠错失败的纠错块的二值化阈值。
其中,条码图像的初始码图片区表示条码图像的整个图像区域。
S302,处理器根据子片区中纠错成功的纠错块确定子片区中纠错失败的纠错块的二值化阈值。
其中,二值化阈值是指将条码图像中的像素值与一个阈值进行比较,将像素点转换为黑白颜色的临界点。通过设定二值化阈值,可以将条码图像转换为只有黑白两种颜色的图像,便于后续的处理和识别。
S303,处理器按照子片区中纠错失败的纠错块的二值化阈值对子片区中纠错失败的纠错块重新进行纠错。
其中,采用里德-所罗门(Reed Solomon,简称RS)码对每一纠错块进行纠错,从而实现对条码图像的译码。
通过将条码图像的初始码图片区切割为多个子片区,并确定每一子片区中纠错成功的纠错块,从而确定该子片区中纠错失败的纠错块的二值化阈值。由于纠错块中单元模块的二值化结果能够提供关于数据位的明确指示,使得纠错编码可以更加精确地检测和纠正错误。因此,通过重新确定的每一子片区中纠错失败的纠错块的二值化阈值,使得纠错块中单元模块二值化结果更加准确,从而提高对纠错失败的纠错块的纠错能力,进而提高条码图像译码的准确率。
其中,纠错块的数量为多个。纠错块数量与条码图像的版本信息与纠错等级相关。示例性地,表1示出一种版本信息、纠错等级与纠错块数量的对应关系。
表1
可选地,处理器根据子片区中纠错成功的纠错块确定子片区中纠错失败的纠错块的二值化阈值包括:处理器确定子片区中纠错成功的纠错块的白色单元模块的平均灰度值和黑色单元模块的平均灰度值。处理器计算白色单元模块的平均灰度值和黑色单元模块的平均灰度值的灰度平均值。处理器将灰度平均值作为子片区中纠错失败的纠错块的二值化阈值。
在该公开实施例中,通过子片区中纠错成功的纠错块的白色单元模块和黑色单元模块的平均灰度值,能够确定纠错成功的纠错块的二值化阈值,从而将纠错成功的纠错块的二值化阈值赋值给纠错失败的纠错块,使得纠错失败的纠错块的二值化阈值更加准确。这样,有助于在纠错编码过程中更准确地判断纠错失败的纠错块中数据位的值,以更准确的对纠错失败的纠错块进行二值化处理,从而提高纠错失败的纠错块对应的图像的质量和可读性,进而减少误判和纠错失败的情况。
可选地,处理器根据子片区中纠错成功的纠错块确定子片区中纠错失败的纠错块的二值化阈值包括:处理器获得子片区中纠错成功的纠错块的白色单元模块数量和黑色单元模块数量。处理器根据白色单元模块数量和黑色单元模块数量,确定子片区中纠错失败的纠错块的二值化阈值。
在该公开实施例中,通过子片区中纠错成功的纠错块的白色单元模块数量和黑色单元模块数量,能够确定该子片区中的纠错失败的纠错块是否需要更新二值化阈值,从而使得该子片区中纠错失败的纠错块的二值化阈值更加准确。同时,由于存在不需要进行二值化更新的纠错失败的纠错块,减少计算资源的占用,提高了纠错失败的纠错块的二值化阈值的更新效率。
可选地,处理器根据白色单元模块数量和黑色单元模块数量,确定子片区中纠错失败的纠错块的二值化阈值包括:处理器在白色单元模块数量或黑色单元模块数量小于第一预设数量的情况下,将初始码图片区中纠错失败的纠错块的二值化阈值作为子片区中纠错失败的纠错块的二值化阈值;和/或,在白色单元模块数量和黑色单元模块数量均大于或等于第一预设数量的情况下,将子片区中纠错成功的纠错块的二值化阈值作为子片区中纠错失败的纠错块的二值化阈值。
其中,第一预设数量可以根据所切割的子片区的数量设置。示例性地,在初始码图切割为4个子片区的情况下,第一预设数量的取值区间为[10,20]。具体地,第一预设数量可以设置为10,15或20。
在该公开实施例中,在白色单元模块数量或黑色单元模块数量小于第一预设数量的情况下,表明该子片区中纠错成功的纠错块数量较少,使得纠错成功的纠错块的二值化阈值可能不具有代表性,因此,将初始码图片区中纠错失败的纠错块的二值化阈值作为子片区中纠错失败的纠错块的二值化阈值更为合适,即不需要更新该子片区中纠错失败的纠错块的二值化阈值。在白色单元模块数量和黑色单元模块数量均大于或等于第一预设数量的情况下,表明该子片区中纠错成功的纠错块数量较多,将子片区中纠错成功的纠错块的二值化阈值作为子片区中纠错失败的纠错块的二值化阈值更为准确,因此,需要对该子片区中纠错失败的纠错块的二值化阈值进行更新,并将子片区中纠错成功的纠错块的二值化阈值作为子片区中纠错失败的纠错块的二值化阈值。
可选地,处理器按照如下方式确定子片区中纠错成功的纠错块的二值化阈值:处理器根据子片区中纠错成功的纠错块的二值化原始阈值,确定子片区中纠错成功的纠错块的多个二值化更新阈值。处理器按照多个二值化更新阈值对子片区中纠错成功的纠错块进行二值化并进行错误验证,确定每个二值化更新阈值所对应的子片区中纠错成功的纠错块中的错误单元模块数量。处理器基于错误单元模块数量,确定子片区中纠错成功的纠错块的二值化阈值。
在该公开实施例中,通过获得多个二值化更新阈值,并按照多个二值化更新阈值对子片区中纠错成功的纠错块进行二值化并进行错误验证,进一步提高了所确定的子片区中纠错成功的纠错块的二值化阈值的准确性,从而进一步使得根据纠错成功的纠错块的二值化阈值所确定的纠错失败的纠错块的二值化阈值更加准确,进而提高对纠错失败的纠错块的纠错能力。
其中,按照多个二值化更新阈值对子片区中纠错成功的纠错块进行二值化并进行错误验证,确定每个二值化更新阈值所对应的子片区中纠错成功的纠错块中的错误单元模块数量,可以理解为:子片区中纠错成功的纠错块在按照多个二值化更新阈值进行二值化之前具有明确的白色单元模块和黑色单元模块,此处的白色单元模块和黑色单元模块可以标记为初始单元模块。在此基础上,通过多个二值化更新阈值对子片区中纠错成功的纠错块进行二值化,会重新获得每个二值化更新阈值对应的白色单元模块和黑色单元模块,此处的白色单元模块和黑色单元模块标记为测试单元模块。那么,初始单元模块和测试单元模块的颜色可能会不一致,与初始单元模块颜色不一致的测试单元模块就是每个二值化更新阈值对应的错误单元模块,对应的数量为每个二值化更新阈值对应的错误单元模块数量。这样,通过将多个二值化更新阈值对纠错成功的纠错块进行二值化,以验证多个二值化更新阈值中正确的二值化更新阈值。
可选地,处理器按照如下方式获得子片区中纠错成功的纠错块的二值化原始阈值:处理器获得子片区中纠错成功的纠错块的白色单元模块数量和黑色单元模块数量。处理器在白色单元模块数量和黑色单元模块数量均大于或等于第一预设数量的情况下,确定子片区中纠错成功的纠错块的白色单元模块的平均灰度值和黑色单元模块的平均灰度值。处理器计算白色单元模块的平均灰度值和黑色单元模块的平均灰度值的灰度平均值。处理器将灰度平均值作为子片区中纠错成功的纠错块的二值化原始阈值。
在该实施例中,通过获取子片区中纠错成功的纠错块的白色单元模块数量和黑色单元模块数量,以确定子片区中纠错成功的纠错块的白色和黑色单元模块的分布情况。通过子片区中纠错成功的纠错块的白色单元模块的平均灰度值和黑色单元模块的平均灰度值的灰度平均值,能够准确的确定子片区中纠错成功的纠错块的二值化原始阈值。
可选地,处理器根据子片区中纠错成功的纠错块的二值化原始阈值,确定子片区中纠错成功的纠错块的多个二值化更新阈值,包括按照如下公式确定二值化更新阈值:
其中,R为二值化更新阈值,为二值化原始阈值,/>为边界阈值下限,/>为边界阈值上限。
</>。/>和/>可以根据实际需求设置。示例性地,/>的取值区间可以为[1,8],/>的取值区间可以为[4,12]。
在该公开实施例中,通过上述算法,对二值化更新阈值的取值范围进行了限定,使得所确定的二值化更新阈值能够更加准确。需要说明的是,二值化更新阈值与二值化原始阈值不能相差过大,以提高子片区中纠错成功的纠错块的二值化阈值的准确性。
可选地,处理器基于错误单元模块数量,确定子片区中纠错成功的纠错块的二值化阈值包括:处理器确定多个错误单元模块数量中满足错误单元模块数量条件的目标错误单元模块数量;其中,错误单元模块数量条件包括错误单元模块数量最少,或者错误单元模块数量小于第二预设数量。处理器确定目标错误单元模块数量所对应的目标二值化更新阈值。处理器根据目标二值化更新阈值确定子片区中纠错成功的纠错块的二值化阈值。
其中,第二预设数量根据实际需求设置。示例性地,第二预设数量的取值范围为小于10。这样,能够确保错误单元模块数量较少,有利于选择出最准确的二值化更新阈值。
在该公开实施例中,通过确定多个错误单元模块数量中的目标错误单元模块数量,既能确定满足条件的错误单元模块数量所对应的二值化更新阈值,通过满足条件的二值化更新阈值,能够准确的确定子片区中纠错成功的纠错块的二值化阈值,从而提高子片区中纠错失败的纠错块的二值化阈值的准确性。
可选地,处理器根据目标二值化更新阈值确定子片区中纠错成功的纠错块的二值化阈值包括:处理器在目标二值化更新阈值唯一的情况下,将目标二值化更新阈值作为子片区中纠错成功的纠错块的二值化阈值。处理器在目标二值化更新阈值不唯一的情况下,计算目标二值化更新阈值的平均值,并将目标二值化更新阈值的平均值作为子片区中纠错成功的纠错块的二值化阈值。
在该公开实施例中,通过确定目标二值化更新阈值是否为唯一的阈值,并根据目标二值化更新阈值是否为唯一的阈值确定对应的子片区中纠错成功的纠错块的二值化阈值,这样,能够使得确定的子片区中纠错成功的纠错块的二值化阈值更加精准。
可选地,处理器将条码图像的初始码图片区切割为多个子片区包括:处理器获得条码图像的部分纠错块的纠错成功率。处理器根据纠错成功率确定子片区的目标切割数量。处理器按照目标切割数量,将条码图像的初始码图片区切割为多个子片区。
示例性地,条码图像的部分纠错块的纠错成功率与目标切割数量负相关,即条码图像的部分纠错块的纠错成功率越大,目标切割数量越少。
在该公开实施例中,通过条码图像的部分纠错块的纠错成功率确定目标切割数量,能够使得所切割的子片区的数量更加合理,从而使得根据子片区纠错成功的纠错块所确定的纠错失败的纠错块的二值化阈值更加准确,更加的优化条码图像的质量,减少条码图像中的噪点和失真,提高纠错失败的纠错块的识别准确性。
可选地,处理器按照子片区中纠错失败的纠错块的二值化阈值对子片区中纠错失败的纠错块重新进行纠错之后还包括:处理器在子片区中纠错失败的纠错块部分纠错成功的情况下,将子片区切割为多个新的子片区,且将多个新的子片区作为子片区,并确定每一子片区中纠错成功的纠错块。处理器根据子片区中纠错成功的纠错块确定子片区中纠错失败的纠错块的二值化阈值。处理器按照子片区中纠错失败的纠错块的二值化阈值对子片区中纠错失败的纠错块重新进行纠错,直到子片区中纠错失败的纠错块全部纠错成功或全部纠错失败。
如图4所示,本公开实施例提供另一种用于条码图像的译码方法,该译码方法包括:
S401,处理器在条码图像的部分纠错块纠错成功的情况下,将条码图像的初始码图片区切割为多个子片区。
S402,处理器确定每一子片区中纠错成功的纠错块。
S403,处理器根据子片区中纠错成功的纠错块确定子片区中纠错失败的纠错块的二值化阈值。
S404,处理器按照子片区中纠错失败的纠错块的二值化阈值对子片区中纠错失败的纠错块重新进行纠错。
S405,处理器判断子片区中纠错失败的纠错块是否部分纠错成功。若是,进入S406,若否,进入S407。
S406,处理器将子片区切割为多个新的子片区,且将多个新的子片区作为子片区,并进入S402。
S407,处理器确定子片区译码成功或译码失败。
在该公开实施例中,通过递归的方法依次切割子片区,每次都重新确定当前子片区中纠错失败的纠错块的二值化阈值,并对当前子片区中纠错失败的纠错块进行纠错,直到当前子片区中纠错失败的纠错块全部纠错成功或全部纠错失败。这样,通过递归分割子片区的方式,提升了子片区中纠错失败的纠错块的二值化阈值更新的准确性和鲁棒性,从而提高纠错成功率和条码图像识别率。
需要说明的是,在子片区是通过上一子片区切割获得的情况下,根据白色单元模块数量和黑色单元模块数量,确定子片区中纠错失败的纠错块的二值化阈值,包括:在白色单元模块数量或黑色单元模块数量小于第一预设数量的情况下,将上一子片区中纠错失败的纠错块的二值化阈值作为子片区中纠错失败的纠错块的二值化阈值。
可选地,该译码方法还包括:处理器在条码图像的全部纠错块纠错成功的情况下,确定条码图像译码成功。处理器在条码图像的部分纠错块纠错失败的情况下,确定条码图像译码失败。
在该公开实施例中,通过所有纠错块的纠错结果确定条码图像的译码结果,以实现对条码图像的解码。
结合图5所示,本公开实施例提供一种用于条码图像的译码装置200,该译码装置包括:第一确定模块21、第二确定模块22和纠错模块23。其中,第一确定模块21被配置为在条码图像的部分纠错块纠错成功的情况下,将条码图像的初始码图片区切割为多个子片区,并确定每一子片区中纠错成功的纠错块。第二确定模块22被配置为根据子片区中纠错成功的纠错块确定子片区中纠错失败的纠错块的二值化阈值。纠错模块23被配置为按照子片区中纠错失败的纠错块的二值化阈值对子片区中纠错失败的纠错块重新进行纠错。
采用本公开实施例提供的用于条码图像的译码装置200,有利于使得纠错块中单元模块二值化结果更加准确,从而提高对纠错失败的纠错块的纠错能力,进而提高条码图像译码的准确率。
结合图6所示,本公开实施例提供一种用于条码图像的译码装置300,包括处理器(processor)100和存储器(memory)101。可选地,该装置还可以包括通信接口(Communication Interface)102和总线103。其中,处理器100、通信接口102、存储器101可以通过总线103完成相互间的通信。通信接口102可以用于信息传输。处理器100可以调用存储器101中的逻辑指令,以执行上述实施例的用于条码图像的译码方法。
本公开实施例提供了一种电子设备,包括:电子设备本体,以及上述的用于条码图像的译码装置200(300)。用于条码图像的译码装置200(300)被安装于电子设备本体。这里所表述的安装关系,并不仅限于在电子设备内部放置,还包括了与电子设备的其他元器件的安装连接,包括但不限于物理连接、电性连接或者信号传输连接等。本领域技术人员可以理解的是,用于条码图像的译码装置可以适配于可行的电子设备主体,进而实现其他可行的实施例。
本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于条码图像的译码方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (7)
1.一种用于条码图像的译码方法,其特征在于,包括:
在条码图像的部分纠错块纠错成功的情况下,将条码图像的初始码图片区切割为多个子片区,并确定每一子片区中纠错成功的纠错块;
根据子片区中纠错成功的纠错块确定子片区中纠错失败的纠错块的二值化阈值;
按照子片区中纠错失败的纠错块的二值化阈值对子片区中纠错失败的纠错块重新进行纠错;
其中,根据子片区中纠错成功的纠错块确定子片区中纠错失败的纠错块的二值化阈值,包括:
确定子片区中纠错成功的纠错块的白色单元模块的平均灰度值和黑色单元模块的平均灰度值;其中,在采样时条码图像的每个单元模块会得到一个灰度值,通过二值化阈值将每个单元模块确定为白色单元模块或黑色单元模块;
计算白色单元模块的平均灰度值和黑色单元模块的平均灰度值的灰度平均值;
将灰度平均值作为子片区中纠错失败的纠错块的二值化阈值;或,
获得子片区中纠错成功的纠错块的白色单元模块数量和黑色单元模块数量;
根据白色单元模块数量和黑色单元模块数量,确定子片区中纠错失败的纠错块的二值化阈值;
其中,根据白色单元模块数量和黑色单元模块数量,确定子片区中纠错失败的纠错块的二值化阈值,包括:在白色单元模块数量和黑色单元模块数量均大于或等于第一预设数量的情况下,将子片区中纠错成功的纠错块的二值化阈值作为子片区中纠错失败的纠错块的二值化阈值;
其中,按照如下方式确定子片区中纠错成功的纠错块的二值化阈值:根据子片区中纠错成功的纠错块的二值化原始阈值,确定子片区中纠错成功的纠错块的多个二值化更新阈值;按照多个二值化更新阈值对子片区中纠错成功的纠错块进行二值化并进行错误验证,确定每个二值化更新阈值所对应的子片区中纠错成功的纠错块中的错误单元模块数量;基于错误单元模块数量,确定子片区中纠错成功的纠错块的二值化阈值。
2.根据权利要求1所述的译码方法,其特征在于,根据白色单元模块数量和黑色单元模块数量,确定子片区中纠错失败的纠错块的二值化阈值,包括:
在白色单元模块数量或黑色单元模块数量小于第一预设数量的情况下,将初始码图片区中纠错失败的纠错块的二值化阈值作为子片区中纠错失败的纠错块的二值化阈值。
3.根据权利要求1所述的译码方法,其特征在于,
根据子片区中纠错成功的纠错块的二值化原始阈值,确定子片区中纠错成功的纠错块的多个二值化更新阈值,包括按照如下公式确定二值化更新阈值:
,
其中,R为二值化更新阈值,为二值化原始阈值,/>为边界阈值下限,/>为边界阈值上限;
按照如下方式获得子片区中纠错成功的纠错块的二值化原始阈值:
获得子片区中纠错成功的纠错块的白色单元模块数量和黑色单元模块数量;
在白色单元模块数量和黑色单元模块数量均大于或等于第一预设数量的情况下,确定子片区中纠错成功的纠错块的多个白色单元模块的平均灰度值和多个黑色单元模块的平均灰度值;
计算多个白色单元模块的平均灰度值和多个黑色单元模块的平均灰度值的灰度平均值;
将灰度平均值作为子片区中纠错成功的纠错块的二值化原始阈值。
4.根据权利要求1所述的译码方法,其特征在于,基于错误单元模块数量,确定子片区中纠错成功的纠错块的二值化阈值,包括:
确定多个错误单元模块数量中满足错误单元模块数量条件的目标错误单元模块数量;其中,错误单元模块数量条件包括错误单元模块数量最少,或者错误单元模块数量小于第二预设数量;
确定目标错误单元模块数量所对应的目标二值化更新阈值;
根据目标二值化更新阈值确定子片区中纠错成功的纠错块的二值化阈值。
5.根据权利要求1至4任一项所述的译码方法,其特征在于,将条码图像的初始码图片区切割为多个子片区,包括:
获得条码图像的部分纠错块的纠错成功率;
根据纠错成功率确定子片区的目标切割数量;
按照目标切割数量,将条码图像的初始码图片区切割为多个子片区。
6.一种用于条码图像的译码装置,包括处理器和存储有程序指令的存储器,其特征在于,处理器被配置为在运行所述程序指令时,执行如权利要求1至5任一项所述的用于条码图像的译码方法。
7.一种电子设备,其特征在于,包括:
电子设备本体;和,
如权利要求6所述的用于条码图像的译码装置,被安装于电子设备本体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311649159.1A CN117350317B (zh) | 2023-12-05 | 2023-12-05 | 用于条码图像的译码方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311649159.1A CN117350317B (zh) | 2023-12-05 | 2023-12-05 | 用于条码图像的译码方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117350317A CN117350317A (zh) | 2024-01-05 |
CN117350317B true CN117350317B (zh) | 2024-03-26 |
Family
ID=89371397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311649159.1A Active CN117350317B (zh) | 2023-12-05 | 2023-12-05 | 用于条码图像的译码方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117350317B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1885725A (zh) * | 2006-07-12 | 2006-12-27 | 中国物品编码中心 | 纠错编码方法 |
CN104143109A (zh) * | 2014-01-28 | 2014-11-12 | 深圳市雁联计算系统有限公司 | 一种二维码的编码和解码方法及其印刷物 |
CN104992207A (zh) * | 2015-06-16 | 2015-10-21 | 无锡久源软件科技有限公司 | 一种手机二维条码编解码方法 |
US9542262B1 (en) * | 2014-05-29 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Error correction |
CN108596001A (zh) * | 2017-09-21 | 2018-09-28 | 北京三快在线科技有限公司 | 二维码纠错译码方法、装置、电子设备及计算机可读介质 |
CN113822091A (zh) * | 2021-11-23 | 2021-12-21 | 北京紫光青藤微系统有限公司 | 用于二维码码图纠错的方法及装置、电子设备、存储介质 |
CN116739022A (zh) * | 2023-08-15 | 2023-09-12 | 北京紫光青藤微系统有限公司 | 用于条码图像的译码方法、装置和电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10123406A1 (de) * | 2001-05-15 | 2002-11-21 | Sick Ag | Verfahren zum Erfassen von zweidimensionalen Codes |
-
2023
- 2023-12-05 CN CN202311649159.1A patent/CN117350317B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1885725A (zh) * | 2006-07-12 | 2006-12-27 | 中国物品编码中心 | 纠错编码方法 |
CN104143109A (zh) * | 2014-01-28 | 2014-11-12 | 深圳市雁联计算系统有限公司 | 一种二维码的编码和解码方法及其印刷物 |
US9542262B1 (en) * | 2014-05-29 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Error correction |
CN104992207A (zh) * | 2015-06-16 | 2015-10-21 | 无锡久源软件科技有限公司 | 一种手机二维条码编解码方法 |
CN108596001A (zh) * | 2017-09-21 | 2018-09-28 | 北京三快在线科技有限公司 | 二维码纠错译码方法、装置、电子设备及计算机可读介质 |
CN113822091A (zh) * | 2021-11-23 | 2021-12-21 | 北京紫光青藤微系统有限公司 | 用于二维码码图纠错的方法及装置、电子设备、存储介质 |
CN116739022A (zh) * | 2023-08-15 | 2023-09-12 | 北京紫光青藤微系统有限公司 | 用于条码图像的译码方法、装置和电子设备 |
Non-Patent Citations (1)
Title |
---|
一种自适应数据逐层分解的Reed-Solomon码迭代纠错方法及应用;王娟;王萍;;电子与信息学报(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117350317A (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3309704B1 (en) | Two-dimensional code partitioning and decoding method and system | |
US10679175B2 (en) | Two-dimensional code, system for creation of two-dimensional code, and analysis program | |
CN106960208B (zh) | 一种仪表液晶数字自动切分和识别的方法及系统 | |
US8215564B2 (en) | Method and system for creating and using barcodes | |
CN105989317B (zh) | 一种二维码的识别方法及装置 | |
US9898637B2 (en) | Two-dimensional code | |
EP2393035A2 (en) | QR barcode decoding chip and decoding method thereof | |
CN110363202B (zh) | 指针式仪表数值读取方法及计算机终端 | |
CN107169489B (zh) | 倾斜图像校正的方法和装置 | |
WO2013044875A1 (zh) | 线性条码识别方法和系统 | |
CN110647882A (zh) | 图像校正方法、装置、设备及存储介质 | |
US20150347886A1 (en) | High capacity 2d color barcode and method for decoding the same | |
CN111046996B (zh) | 一种彩色qr码生成和识别方法 | |
CN109191516B (zh) | 结构光模组的旋转纠正方法、装置及可读存储介质 | |
CN110569845A (zh) | 一种试卷图像的校正方法及相关装置 | |
CN109508571B (zh) | 一种条空定位方法、装置、电子设备及存储介质 | |
CN116739022B (zh) | 用于条码图像的译码方法、装置和电子设备 | |
CN113557520A (zh) | 字符处理及字符识别方法、存储介质和终端设备 | |
CN111815725B (zh) | 一种qr码区域定位方法 | |
CN117350317B (zh) | 用于条码图像的译码方法、装置和电子设备 | |
JP4224328B2 (ja) | 車番認識装置 | |
CN202267974U (zh) | 用于二维码的定位系统及二维码的识别设备 | |
CN109670150B (zh) | 一种电子文档归档方法及装置 | |
CN115880683A (zh) | 一种基于深度学习的城市内涝积水智能水位检测方法 | |
CN110706263B (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 |