一种条形码识别方法、装置、电子设备及存储介质
技术领域
本申请涉及图像处理技术领域,具体而言,涉及一种条形码识别方法、装置、电子设备及存储介质。
背景技术
条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。市面上关于条形码识别系统主要是针对清晰的条形码进行检测与识别,对于高噪声的条形码,虽有相关研究,其算法可以在条形码图案周围有较高的噪声的情况下将条形码区域检测出来,但依旧要求清晰的条形码图案。如果条形码图案上有高干扰噪声,该算法也无法识别出条形码的编码。
使用卷积神经网络对图像进行去噪是近年来的研究热点,如ConvolutionalAuto-encoders,RED-CNN,Learning Hybrid Sparsity Prior,Noise2Noise等。基于卷积神经网络的去噪算法可以同时去除多种噪声,如字符噪声、椒盐噪声等,使用卷积神经网络对高噪声条形码图像进行去噪,得到清晰的条形码图案,进而可以识别出条形码的编码信息。但基于卷积神经网络的方法需要进行大量的数据标注,同时卷积神经网络的去噪很容易出现过拟合的情况,在未知噪声上的效果会下降。
发明内容
本申请实施例的目的在于提供一种条形码识别方法、装置、电子设备及存储介质,用以提高对条形码去噪的效果。
第一方面,本申请实施例提供一种条形码识别方法,包括:获取待识别图像,所述待识别图像包括带有噪声的条形码;对所述待识别图像进行二值化处理,获得对应的二值化图像;在所述二值化图像中确定一条与所述条形码的两个短边相交且与长边平行的切分线;分别以所述切分线上每个像素值为1的像素点为基点,确定过所述基点的多条直线;从多条直线中确定对应基点的目标线段,作为条形码线段;将所述二值化图像中除了被标记为条形码线段对应的像素点之外的像素值为1的像素点剔除,获得去噪后的二值化图像;对所述去噪后的二值化图像进行识别,获得所述条形码对应的识别结果。
本申请实施例通过在条形码上确定一条切分线,并以切分线上像素值为1的像素点为基点,获得每个基点对应的多条直线,并从多条直线中获得条形码线段,将二值化图像中除了被标记为条形码线段对应的像素点之外的像素值为1的像素点剔除,获得去噪后的二值化图像,能够很好地去除条形码中的噪声,从而提高对条形码识别的准确性。
进一步地,所述从多条直线中确定对应基点的目标线段,包括:从每条直线中获得多条线段,所述每条线段为二值化图像中与直线重合的连续多个像素值为1的像素点构成;针对每条直线,从对应的多条线段中获取最长线段;判断每条直线对应的最长线段是否满足预设条件,将满足预设条件的最长线段作为目标线段;其中:所述预设条件包括:最长线段过对应的基点,且最长线段的长度占对应直线与二值化图像相交获得的线段长度的比值大于预设阈值。
本申请实施例中在获得每个基准点对应的每条直线上的最长线段后,根据预设条件判断最长线段是否为目标线段,从而能够准确地识别出二值化图像中的噪声像素点,进而能够提高对二值化图像去噪的效果。
进一步地,所述在所述二值化图像中确定一条与所述条形码的两个短边相交且与长边平行的切分线,包括:在所述二值化图像中确定过所述条形码的两个短边的中点的切分线。
本申请实施例通过根据条形码两个短边中点确定切分线,使得各个基点处于条形码中每条黑条的中点,从而以该基点做直线后能够准确的获得目标线段,进而提高对条形码去噪的效果。
进一步地,在获取待识别图像之后,所述方法还包括:将所述待识别图像输入对象检测模型中,获得包含单个条形码的检测框;根据所述检测框对所述待识别图像进行裁剪,获得条形码图像;利用定位模型对所述条形码图像中的条形码进行定位,获得所述条形码对应的位置信息;根据所述条形码的位置信息对所述条形码进行矫正,获得矫正后的条形码图像。
本申请实施例通过对待识别图像进行对象检测、定位、矫正等操作,提高了对条形码识别的准确性。
进一步地,所述根据所述条形码的位置信息对所述条形码进行矫正,包括:利用仿射变换或透视变换根据所述条形码的位置信息对所述条形码进行矫正。通过仿射变换或透视变换消除待识别图像中条形码上的变形,从而提高了对条形码进行去噪的效果。
进一步地,在利用定位模型对所述条形码图像中的条形码进行定位之前,所述方法还包括:获取训练样本集,所述训练样本集包括多张训练图像以及每张训练图像对应的标签;其中,所述训练图像包括条形码,所述标签为所述条形码的位置信息;将所述训练图像输入定位模型中,所述定位模型输出对应的预测结果;根据所述预测结果和对应的标签对所述定位模型中的参数进行优化,获得训练好的定位模型。
进一步地,对所述去噪后的二值化图像进行识别,获得所述条形码对应的识别结果,包括:从所述去噪后的二值化图像中获取各条码的宽度信息,根据预设编码规则对各条码的宽度信息进行解码,获得所述识别结果。
本申请通过利用预设编码规则对去噪后的条形码中各个条码的宽度信息进行解码,从而获得识别结果,由于条形码是经过去噪的,因此能够准确地获得各个条码的宽度信息,进而提高了对条形码识别的准确性。
第二方面,本申请实施例提供一种条形码识别装置,包括:图像获取模块,用于获取待识别图像,所述待识别图像包括带有噪声的条形码;图像处理模块,用于对所述待识别图像进行二值化处理,获得对应的二值化图像;切分线获得模块,用于在所述二值化图像中确定一条与所述条形码的两个短边相交且与长边平行的切分线;直线获得模块,用于分别以所述切分线上每个像素值为1的像素点为基点,确定过所述基点的多条直线;目标线段获得模块,用于从多条直线中确定对应基点的目标线段,作为条形码线段;去噪模块,用于将所述二值化图像中除了被标记为条形码线段对应的像素点之外的像素值为1的像素点剔除,获得去噪后的二值化图像;识别模块,用于对所述去噪后的二值化图像进行识别,获得所述条形码对应的识别结果。
第三方面,本申请实施例提供一种电子设备,包括:处理器、存储器和总线,其中,所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法。
第四方面,本申请实施例提供一种非暂态计算机可读存储介质,包括:所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种条形码识别方法流程示意图;
图2为本申请实施例提供的对条形码进行切分的示意图;
图3为本申请实施例提供的对象检测模型训练方法流程示意图;
图4为本申请实施例提供的定位模型训练方法流程示意图;
图5为本申请实施例提供的条形码示意图;
图6为本申请实施例提供的装置结构示意图;
图7为本申请实施例提供的电子设备实体结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
图1为本申请实施例提供的一种条形码识别方法流程示意图,如图1所示,该方法可以应用于终端设备(也可以称为电子设备)以及服务器;其中终端设备具体可以为智能手机、平板电脑、计算机、个人数字助理(Personal Digital Assitant,PDA)等;服务器具体可以为应用服务器,也可以为Web服务器。该方法包括:
步骤101:获取待识别图像,所述待识别图像包括带有噪声的条形码;
步骤102:对所述待识别图像进行二值化处理,获得对应的二值化图像;
步骤103:在所述二值化图像中确定一条与所述条形码的两个短边相交且与长边平行的切分线;
步骤104:分别以所述切分线上每个像素值为1的像素点为基点,确定过所述基点的多条直线;
步骤105:从多条直线中确定对应基点的目标线段,作为条形码线段;
步骤106:将所述二值化图像中除了被标记为条形码线段对应的像素点之外的像素值为1的像素点剔除,获得去噪后的二值化图像;
步骤107:对所述去噪后的二值化图像进行识别,获得所述条形码对应的识别结果。
其中,在步骤101中,待识别图像可以是终端设备通过自身携带的图像采集装置对条形码进行采集获得,也可以是通过其他设备(例如可以是收银员手持的扫码枪)对条形码进行采集,并将采集到的待识别图像通过有线或无线的方式传输给终端设备。另外,待识别图像可以是彩色图像,也可以是灰度图。应当说明的是,由于光线、拍摄角度等原因,采集到的待识别图像中的条形码带有噪声。
在进行图像采集时,可以是通过照相的模式,对条形码进行拍照,获得一张待识别图像;也可以是通过视频采集的模式,采集一段视频,然后从该段视频中选择其中一帧的图像作为待识别图像,或者从中选择成像效果最好的一帧作为待识别图像。
在步骤102中,为了便于确定待识别图像中条形码的长和宽,以及条形码中的黑条所占的像素点位置,本申请实施例将待识别图像进行二值化处理。可以理解的是,如果待识别图像为彩色图像,则可以先将待识别图像进行灰度处理,获得对应的灰度图像后再进行二值化处理。图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。其中,黑色的像素点对应的值为1,白色的像素点对应的值为0。
在步骤103中,一般情况下,条形码的形状为矩形,即包括长边和短边。在获得到二值化图像后,作一条与条形码的两个短边相交且与上边平行的切分线。可以理解的是,该切分线可以是过两个短边的中点的直线,如图2所示。
在步骤104中,在确定好切分线之后,切分线也是由多个像素点构成,并且多个像素点中有像素值为0的点,也有像素值为1的点。从图2中可以看出,切分线与条形码中的黑条相交的像素点为切分线上像素值为1的像素点,切分线过条形码之外白色区域以及过条形码中的白条的像素点为像素值为0的像素点。
终端设备从切分线中获取像素值为1的像素点为基点,过该基点可以确定出多条直线。仍以图2为例,可以以P点为基准点,过P点可以做多条直线,为了方便查看,图2中只给出了两条直线,即第一直线和第二直线。应当说明的是,为了在图2中表示清楚,P点相对较大,P点实际上只占用一个像素点。可以理解的是,过该基点可以确定出无数条直线,但是为了避免计算量过大,并且能够保证对待识别图像中每个像素值为1的像素点进行噪声判断,多条直线的数量可以根据以下规则确定:多条直线能够覆盖待识别图像中所有的像素值为1的像素点。
在步骤105中,线段是由连续的像素值为1的像素点构成,每条直线均包括至少一个线段。但是对于每个基点分别对应的多条直线来说,并不是每条直线上的线段都可以作为目标线段,只有满足预设条件的线段才能够被称为目标线段,并且,一个基点可以对应至少一个目标线段。
在步骤106中,在对所有的基点确定其对应的目标线段之后,组成目标线段的像素点为条形码中黑条的像素点,除了目标线段对应的像素点之外的像素值为1的像素点认为是噪声像素点,将这些噪声像素点剔除,便可获得去噪后的二值化图像。
在步骤107中,在对二值化图像进行去噪之后,可以利用预设的解码规则对去噪后的二值化图像进行识别,获得对应的识别结果。
本申请实施例通过在条形码上确定一条切分线,并以切分线上像素值为1的像素点为基点,获得每个基点对应的多条直线,并从多条直线中获得条形码线段,将二值化图像中除了被标记为条形码线段对应的像素点之外的像素值为1的像素点剔除,获得去噪后的二值化图像,能够很好地去除条形码中的噪声,从而提高对条形码识别的准确性。
在上述实施例的基础上,所述从多条直线中确定对应基点的目标线段,包括:
从每条直线中获得多条线段,所述每条线段为二值化图像中与直线重合的连续多个像素值为1的像素点构成;
针对每条直线,从对应的多条线段中获取最长线段;
判断每条直线对应的最长线段是否满足预设条件,将满足预设条件的最长线段作为目标线段;其中:
所述预设条件包括:
最长线段过对应的基点,且最长线段的长度占对应直线与二值化图像相交获得的线段长度的比值大于预设阈值。
在具体的实施过程中,过基点的直线可以被条形码上的黑条、白条以及噪声切分成一段一段的。每条线段是与直线重合的连续多个像素值为1的像素点构成。最长线段是指一条直线对应的多个线段中,像素值为1的像素点最多的线段。因此,可以从每条直线中都找到一条最长线段。
切分线包括多个基点,每个基点对应多条直线,每条直线对应一条最长线段。因此,对于一个基点来说,其对应了多条最长线段。针对一个基点,判断对应的最长线段是否满足预设条件,并将满足预设条件的最长线段作为目标线段。其中,判定为目标线段需同时满足如下几个条件:
(1)最长线段过对应的基点;
(2)最长线段的长度占对应直线与二值化图像相交获得的线段长度的比值大于预设阈值;其中,二值化图像的边缘可以是条形码的最小外接矩形。预设阈值可以是2/3,当然也可以是1/2,还可以是其他数值,具体可以根据实际情况进行设定。
仍以图2为例,第一直线对应的最长线段不满足上述两个条件,因此,第一直线中的所有线段都不是目标线段;第二直线对应的最长线段同时满足上述两个条件,因此,第二直线对应的最长线段为目标线段。
在另一实施例中,预设条件还可以是最长线段的长度占对应直线与二值化图像相交获得的线段长度的比值大于预设阈值,其中,二值化图像的边缘可以是条形码的最小外接矩形。预设阈值可以是2/3,当然也可以是1/2,还可以是其他数值,具体可以根据实际情况进行设定。
应当说明的是,由于条形码中有的黑条可能较宽,因此,在较宽的黑条上的基点可能会对应多条目标线段。
本申请实施例中在获得每个基准点对应的每条直线上的最长线段后,根据预设条件判断最长线段是否为目标线段,从而能够准确地识别出二值化图像中的噪声像素点,进而能够提高对二值化图像去噪的效果。
在上述实施例的基础上,在获取待识别图像之后,所述方法还包括:
将所述待识别图像输入对象检测模型中,获得包含单个条形码的检测框;
根据所述检测框对所述待识别图像进行裁剪,获得条形码图像;
利用定位模型对所述条形码图像中的条形码进行定位,获得所述条形码对应的位置信息;
根据所述条形码的位置信息对所述条形码进行矫正,获得矫正后的条形码图像。
在具体的实施过程中,待识别图像中可能包含一个条形码,也可能包括多个条形码,对于包含一个条形码的情况,通过对象检测模型的分析处理,可以通过检测框将该条形码框出来。对于包含多个条形码的情况,通过对象检测模型的分析处理,可以通过检测框将每一个条形码框出来,即一个检测框包含一个条形码。
对象检测模型为预先训练好的,其训练的过程可以参见下述实施例,对象检测是指利用图像处理与模式识别等领域的理论和方法,检测出图像中存在的目标对象,确定这些目标对象的语义类别,并标定出目标对象在图像中的位置。对象检测是对象识别的前提,当检测到对象后才能对对象进行识别。
在对象检测模型对待识别图像进行标注后,终端设备可以根据检测框对待识别图像进行裁剪,获得条形码图像。
定位模型也是预先训练获得的,定位模型可以获得条形码图像中的条形码的四个顶点的位置信息。即,将条形码图像输入到定位模型中,定位模型对条形码图像进行分析,获得定位模型输出的条形码图像中条形码的四个顶点的位置信息。
由于在对条形码进行图像采集的时候,镜头可能不是正对条形码进行拍摄的,所以,导致条形码的形状会畸变,为了提高识别的准确性,可以根据条形码的位置信息对条形码图像中的条形码进行矫正。其中,矫正的方法可以是通过仿射变换或透视变换,仿射变换就是允许图形任意倾斜,而且允许图形在两个方向(水平方向和垂直方向)上任意伸缩的变换。放射变换可以保持原来的线共点、点共线的关系不变,保持原来相互平行的线仍然平行,保持原来的中点仍然是中点,保持原来在一直线上几段线段之间的比例关系不变。但是,仿射变换不能保持原来的线段长度不变,也不能保持原来的夹角角度不变。放射变换可以通过一系列的原子变换的复合来实现,包括:平移、缩放、翻转、旋转和剪切。
透视变换是指利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光纤束,仍能保持承影面上的投影几何图形不变的变换。
本申请实施例通过。通过仿射变换或透视变换消除待识别图像中条形码上的变形,从而提高了对条形码进行去噪的效果。
图3为本申请实施例提供的对象检测模型训练方法流程示意图,如图3所示,该方法包括:
步骤301:获取多个第一训练样本,每一个第一训练样本包括第一训练图像以及对应的第一标签;其中,第一训练图像中包括至少一个条形码,第一标签是针对每一个条形码的检测框。该检测框可以是通过人工进行标注获得。
步骤302:将第一训练图像输入待训练的对象检测模型中,获得对象检测模型的预测结果,其中,预测结果是指待训练的对象检测模型对第一训练图像中的条形码进行标注后输出的图像,可以理解的是,在最开始训练时,对象检测模型输出的预测结果中,检测框可能不会准确的将条形码框起来。
步骤303:根据第一预测结果和对应的第一标签对对象检测模型中的参数进行优化,获得训练好的对象检测模型。可以理解的是,模型训练的过程是一个多次训练迭代的过程,其训练结束的依据可以是满足预设的训练次数,或者损失值的变化率小于预设阈值。
图4为本申请实施例提供的定位模型训练方法流程示意图,如图4所示,该方法包括:
步骤401:获取训练样本集,所述训练样本集包括多张训练图像以及每张训练图像对应的标签;其中,所述训练图像包括条形码,所述标签为所述条形码的位置信息;可以理解的是,标签可以是条形码四个顶点对应的像素点的位置信息。
步骤402:将所述训练图像输入定位模型中,所述定位模型输出对应的预测结果;其中,预测结果为输入的训练图像中条形码的四个顶点的位置信息。
步骤403:根据所述预测结果和对应的标签对所述定位模型中的参数进行优化,获得训练好的定位模型。可以理解的是,模型训练的过程是一个多次训练迭代的过程,其训练结束的依据可以是满足预设的训练次数,或者损失值的变化率小于预设阈值。
可以理解的是,本申请实施例提供的模型训练方法以及条形码识别的方法均可以应用于终端设备。另外,模型训练方法以及条形码识别的方法均可以是同一终端设备执行,也可以是不同终端设备执行。
为了便于理解,本申请实施例提供的技术方案,以终端设备作为执行主体为例,对本申请实施例提供的模型训练方法及条形码识别的方法的应用场景进行介绍。
在上述实施例的基础上,对所述去噪后的二值化图像进行识别,获得所述条形码对应的识别结果,包括:
从所述去噪后的二值化图像中获取各条码的宽度信息,根据预设编码规则对各条码的宽度信息进行解码,获得所述识别结果。
其中,条形码由多个区域组成,如图5所示,包括:起始符、左侧数据符、中间分隔符、右侧数据符、校验符、终止符、左侧空白区、右侧空白区和前置码。条形码中的黑条表示二进制的1,白条表示0,而且0.33mm宽度的黑条或白条为一个基本的二进制位,若条形码中的黑条很宽,则说明连着有好几个二进制1。
一维条形码只能表示数字,不能表示字母符号和汉字,每个数字由7个二进制位组成,而且这些二进制组成的规则不是ASCII码,而是预设的编码规则,比如0000 101,这个表示的不是数字5(ASCII码表示的就是5),应该按照预设的编码表进行解码。常用的码制有EAN条形码、UPC条形码、二五条形码,交叉二五条形码、库德巴条形码和127条形码等,而商品上最常用的就是EAN商品条形码。EAN商品条形码分为EAN-13(标准版)和EAN-7(缩短版)两种。
因此,可以根据对应的编码表获得条形码中不同宽度的黑条和白条对应的解码信息,从而实现对条形码的识别。
本申请通过利用预设编码规则对去噪后的条形码中各个条码的宽度信息进行解码,从而获得识别结果,由于条形码是经过去噪的,因此能够准确地获得各个条码的宽度信息,进而提高了对条形码识别的准确性。
图6为本申请实施例提供的装置结构示意图,该装置可以是电子设备上的模块、程序段或代码。应理解,该装置与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括:图像获取模块601、图像处理模块602、切分线获得模块603、直线获得模块604、目标线段获得模块605、去噪模块606和识别模块607,其中:
图像获取模块601用于获取待识别图像,所述待识别图像包括带有噪声的条形码;图像处理模块602用于对所述待识别图像进行二值化处理,获得对应的二值化图像;切分线获得模块603用于在所述二值化图像中确定一条与所述条形码的两个短边相交且与长边平行的切分线;直线获得模块604用于分别以所述切分线上每个像素值为1的像素点为基点,确定过所述基点的多条直线;目标线段获得模块605用于从多条直线中确定对应基点的目标线段,作为条形码线段;去噪模块606用于将所述二值化图像中除了被标记为条形码线段对应的像素点之外的像素值为1的像素点剔除,获得去噪后的二值化图像;识别模块607用于对所述去噪后的二值化图像进行识别,获得所述条形码对应的识别结果。
在上述实施例的基础上,目标线段获得模块605具体用于:
从每条直线中获得多条线段,所述每条线段为二值化图像中与直线重合的连续多个像素值为1的像素点构成;
针对每条直线,从对应的多条线段中获取最长线段;
判断每条直线对应的最长线段是否满足预设条件,将满足预设条件的最长线段作为目标线段;其中:
所述预设条件包括:
最长线段过对应的基点,且最长线段的长度占对应直线与二值化图像相交获得的线段长度的比值大于预设阈值。
在上述实施例的基础上,切分线获得模块603具体用于:
在所述二值化图像中确定过所述条形码的两个短边的中点的切分线。
在上述实施例的基础上,该装置还包括图像预处理模块,用于:
将所述待识别图像输入对象检测模型中,获得包含单个条形码的检测框;
根据所述检测框对所述待识别图像进行裁剪,获得条形码图像;
利用定位模型对所述条形码图像中的条形码进行定位,获得所述条形码对应的位置信息;
根据所述条形码的位置信息对所述条形码进行矫正,获得矫正后的条形码图像。
在上述实施例的基础上,图像预处理模块具体用于:
利用仿射变换或透视变换根据所述条形码的位置信息对所述条形码进行矫正。
在上述实施例的基础上,该装置还包括模型训练模块,用于:
获取训练样本集,所述训练样本集包括多张训练图像以及每张训练图像对应的标签;其中,所述训练图像包括条形码,所述标签为所述条形码的位置信息;
将所述训练图像输入定位模型中,所述定位模型输出对应的预测结果;
根据所述预测结果和对应的标签对所述定位模型中的参数进行优化,获得训练好的定位模型。
在上述实施例的基础上,识别模块607具体用于:
从所述去噪后的二值化图像中获取各条码的宽度信息,根据预设编码规则对各条码的宽度信息进行解码,获得所述识别结果。
综上所述,本申请实施例通过在条形码上确定一条切分线,并以切分线上像素值为1的像素点为基点,获得每个基点对应的多条直线,并从多条直线中获得条形码线段,将二值化图像中除了被标记为条形码线段对应的像素点之外的像素值为1的像素点剔除,获得去噪后的二值化图像,能够很好地去除条形码中的噪声,从而提高对条形码识别的准确性。
图7为本申请实施例提供的电子设备实体结构示意图,如图7所示,所述电子设备,包括:处理器(processor)701、存储器(memory)702和总线703;其中:
所述处理器701和存储器702通过所述总线703完成相互间的通信;
所述处理器701用于调用所述存储器702中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取待识别图像,所述待识别图像包括带有噪声的条形码;对所述待识别图像进行二值化处理,获得对应的二值化图像;在所述二值化图像中确定一条与所述条形码的两个短边相交且与长边平行的切分线;分别以所述切分线上每个像素值为1的像素点为基点,确定过所述基点的多条直线;从多条直线中确定对应基点的目标线段,作为条形码线段;将所述二值化图像中除了被标记为条形码线段对应的像素点之外的像素值为1的像素点剔除,获得去噪后的二值化图像;对所述去噪后的二值化图像进行识别,获得所述条形码对应的识别结果。
处理器701可以是一种集成电路芯片,具有信号处理能力。上述处理器701可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器702可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)等。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取待识别图像,所述待识别图像包括带有噪声的条形码;对所述待识别图像进行二值化处理,获得对应的二值化图像;在所述二值化图像中确定一条与所述条形码的两个短边相交且与长边平行的切分线;分别以所述切分线上每个像素值为1的像素点为基点,确定过所述基点的多条直线;从多条直线中确定对应基点的目标线段,作为条形码线段;将所述二值化图像中除了被标记为条形码线段对应的像素点之外的像素值为1的像素点剔除,获得去噪后的二值化图像;对所述去噪后的二值化图像进行识别,获得所述条形码对应的识别结果。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取待识别图像,所述待识别图像包括带有噪声的条形码;对所述待识别图像进行二值化处理,获得对应的二值化图像;在所述二值化图像中确定一条与所述条形码的两个短边相交且与长边平行的切分线;分别以所述切分线上每个像素值为1的像素点为基点,确定过所述基点的多条直线;从多条直线中确定对应基点的目标线段,作为条形码线段;将所述二值化图像中除了被标记为条形码线段对应的像素点之外的像素值为1的像素点剔除,获得去噪后的二值化图像;对所述去噪后的二值化图像进行识别,获得所述条形码对应的识别结果。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。