发明内容
针对背景技术所面临的问题,本发明创作的目的在于提供一种根据条码的二值化图像在水平方向投影和垂直方向投影的特征来识别条码。
为实现上述目的,本发明采用以下技术手段:
第一方面:本发明提供一种条码识别方法,以应用于条码类型的识别系统的识别装置,该方法包括以下步骤:
获取条码的灰度图像;
对所述灰度图像进行定位,并提取所述灰度图像中的条码图像;
将所述条码图像二值化处理,以获取所述条码的二值化图像;
对所述二值化图像分别沿水平方向和垂直方向进行投影,得到二值化图像的水平方向投影和垂直方向投影;
分别对所述水平方向投影和所述垂直方向投影进行特征提取,得到投影特征;
根据所述投影特征确定所述条码的类型。
可选地,分别对所述水平方向投影和所述垂直方向投影进行特征提取,得到投影特征,包括:
沿水平方向对所述水平方向投影进行直线扫描;
统计扫描直线同时穿过的黑条数或白条数的数量X;
沿垂直方向对所述垂直方向投影进行直线扫描;
统计扫描直线同时穿过的黑条数或白条数的数量Y;
将所述黑条数或白条数的数量X,与所述黑条数或白条数的数量Y作为所述投影特征。
可选地,所述根据所述投影特征确定所述条码的类型,包括:
分析所述X与所述Y的数量关系;
比较所述X的最大值Xmax与所述Y的最大值Ymax的大小;
计算所述最大值Xmax与所述最大值Ymax之间较大值与较小值的比值,得到特征值N;
将所述特征值N与第一预设阈值进行比较,以确定条码的类型。
可选地,将特征值N与第一预设阈值进行比较,以确定条码以识别条码的类型,包括:
若所述特征值N大于所述第一预设阈值,则确定所述条码为一维码;
若所述特征值N小于所述第一预设阈值,则确定所述条码为二维码。
可选地,所述第一预设阈值大于等于2且小于等于7。
可选地,所述第一预设阈值为7,若所述特征值N介于1和2之间,则确定所述条码为矩阵式二维码;若所述特征值N介于2和7之间,则确定所述条码为堆叠式二维码。
可选地,若确定所述条码为二维码,若X的最小值Xmin或Y的最小值Ymin小于等于2,则确定所述条码为矩阵式二维码;若所述最小值Xmin或所述最小值Ymin大于2,则确定所述条码为堆叠式二维码。
可选地,所述分别对水平方向投影和垂直方向投影进行特征提取,包括:
检测所述水平方向投影与所述二值化图像的相似度,得到水平相似度;
检测所述垂直方向投影与所述二值化图像的相似度,得到垂直相似度;
将所述水平相似度和所述垂直相似度作为所述投影特征。
可选地,所述水平方向投影与所述二值化图像的重合度为所述水平相似度,所述垂直方向投影与所述二值化图像的重合度为所述垂直相似度,所述根据所述投影特征确定所述条码的类型,包括:
若所述水平相似度或所述垂直相似度达到第二预设阈值,则确定所述条码为一维码;
若所述水平相似度或所述垂直相似度未达到所述第二预设阈值,则确定所述条码为二维码。
可选地,所述水平方向投影与所述二值化图像的黑块的重合度为所述水平相似度,所述垂直方向投影与所述二值化图像的黑块的重合度为垂直相似度,所述根据所述投影特征确定所述条码的类型,包括:
若所述水平相似度或所述垂直相似度达到第二预设阈值,则确定所述条码为一维码;
若所述水平相似度或所述垂直相似度未达到所述第二预设阈值,则确定所述条码为二维码。
第二方面:本发明提供一种条码识别装置,所述装置包括:
获取模块,用于获取条码的灰度图像;
定位模块,用于对所述灰度图像进行定位,并提取所述灰度图像中的条码图像;
二值化模块,用于将所述条码图像二值化处理,以获取所述条码的二值化图像;
投影模块,用于对所述二值化图像分别沿水平方向和垂直方向进行投影,得到二值化图像的水平方向投影和垂直方向投影;
特征提取模块,用于分别对所述水平方向投影和所述垂直方向投影进行特征提取,得到投影特征;
确定模块,用于根据所述投影特征确定所述条码的类型。
可选地,所述特征提取模块包括:
第一扫描单元,用于沿水平方向对所述水平方向投影进行直线扫描;
第一统计单元,用于统计扫描直线同时穿过的黑条数或白条数的数量X;
第二扫描单元,用于沿垂直方向对所述垂直方向投影进行直线扫描;
第二统计单元,用于统计扫描直线同时穿过的黑条数或白条数的数量Y;
特征确定单元,用于将所述黑条数或白条数的数量X,与所述黑条数或白条数的数量Y作为所述投影特征。
可选地,所述确定模块,包括:
分析单元,用于分析所述X与所述Y的数量关系;
第一比较单元,用于比较所述X的最大值Xmax与所述Y的最大值Ymax的大小;
计算单元,用于计算所述最大值Xmax与所述最大值Ymax之间较大值与较小值的比值,得到特征值N;
第二比较单元,用于将所述特征值N与第一预设阈值进行比较,以确定条码的类型。
可选地,所述第二比较单元,包括:
第一确定子单元,用于若所述特征值N大于所述第一预设阈值,则确定所述条码为一维码;
第二确定子单元,用于若所述特征值N小于所述第一预设阈值,则确定所述条码为二维码。
可选地,所述第一预设阈值为7,所述第二比较单元,包括:
第三确定子单元,用于若所述特征值N介于1和2之间,则确定所述条码为矩阵式二维码;
第四确定子单元,用于若所述特征值N介于2和7之间,则确定所述条码为堆叠式二维码。
可选地,若所述条码为二维码,所述确定模块,包括:
第五确定子单元,用于若X的最小值Xmin或Y的最小值Ymin小于等于2,则确定所述条码为矩阵式二维码;
第六确定子单元,用于若所述最小值Xmin或所述最小值Ymin大于2,则确定所述条码为堆叠式二维码。
可选地,所述特征提取模块包括:
第一检测单元,用于检测所述水平方向投影与所述二值化图像的相似度,得到水平相似度;
第二检测单元,用于检测所述垂直方向投影与所述二值化图像的相似度,得到垂直相似度。
第三确定单元,用于将所述水平相似度和所述垂直相似度作为所述投影特征。
可选地,所述水平方向投影与所述二值化图像的重合度为所述水平相似度,所述垂直方向投影与所述二值化图像的重合度为所述垂直相似度,所述确定模块包括:
第四确定单元,用于若所述水平相似度或所述垂直相似度达到第二预设阈值,则确定所述条码为一维码;
第五确定单元,若所述水平相似度或所述垂直相似度未达到所述第二预设阈值,则确定所述条码为二维码。
可选地,所述水平方向投影与所述二值化图像的黑块的重合度为所述水平相似度,所述垂直方向投影与所述二值化图像的黑块的重合度为垂直相似度,所述确定模块包括:
第六确定单元,用于若所述水平相似度或所述垂直相似度达到第二预设阈值,则确定所述条码为一维码;
第七确定单元,用于若若所述水平相似度或所述垂直相似度未达到所述第二预设阈值,则确定所述条码为二维码。
第三方面:一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现第一方面所述条码识别方法。
第四方面:一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现第一方面所述条码识别方法。
与现有技术相比,本发明具有以下有益效果:
将条码的二值化图像的沿两条相互垂直的边缘分别建立的水平方向投影和垂直方向投影,分别对水平方向投影和垂直方向投影进行特征提取,根据一维码和二维码各自的水平方向投影和垂直方向投影的特征识别条码为一维码或二维码。由于一维码是由黑条和白条在一个方向上间隔排列而成,使得一维码的二值化图像仅在水平方向或垂直方向其中的一个方向上投影时产生明显坍缩;而二维码由黑块和白块在编码区域内散列而成,其算法决定了黑块大致均匀分布在整个编码区域内,使得二维码的二值化图像在水平方向和垂直方向投影时均产生明显坍缩,这也造就了二维码的水平方向投影和垂直方向投影具有明显相似的特征;导致一维码的水平方向投影和垂直方向投影与二维码的水平方向投影和垂直方向投影这些明显不同的区别特征,基于这些区别特征,识别装置可以快速且准确地区分一维码和二维码,从而在识别条码为一维码后根据一维码的编码方式来解码,而在识别条码为二维码后则根据二维码的编码方式来解码,可以有效地提高解码效率。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于更好的理解本发明的目的、结构、特征以及功效等,现结合附图和具体实施方式对本发明作进一步说明。
如图1所示,图1为本发明实施例一种条码识别方法一个实施例示意图,包括如下步骤:
S100:获取条码的灰度图像;
S200:对所述灰度图像进行定位,并提取所述灰度图像中的条码图像;
S300:对所述条码图像进行二值化处理,以获取所述条码的二值化图像;
如图2所示,对于步骤S100-S300,可以理解,当获取了灰度图像P1,首先对灰度图像P1进行预处理,如对灰度图像P1进行滤波处理以去除噪点,同时也使得灰度图像P1平滑化,再通过锐化处理使灰度图像P1更加明晰等等;灰度图像P1通过上述预处理操作之后,条码图像P2在整个灰度图像P1中的位置比较突出,便于定位条码图像P2。具体地,可以根据条码图像P2的特征来定位条码图像P2,如通过边缘检测技术检测条码图像P2的边缘,进而确定条码图像P2的位置,进而将条码图像P2从整个灰度图像P1中分割出来;某些实施例中,图像定位和图像分割可以由同一个处理单元同步进行。需要指出的是,上述预处理和条码图像P2定位都有较为成熟的技术作为支撑,如预处理有中值滤波处理法,边缘检测则可由Canny算子进行边缘检测、再通过大津阈值法进行图像分割,这些方法和其它现有的图像定位以及图像分割的方法在此都不再赘述。如图2所示,由于条码图像P2在整个灰度图像P1中通常处于倾斜状态,可通过方位调整将其调正,具体来说,可以沿着条码图像P2的两条相互垂直的边缘建立垂直坐标系,或旋转条码图像P2使得条码图像P2的两条垂直边缘分别与已有的垂直坐标系的两个坐标轴平行,以便于后续处理,当然,方位调整也可以在后续的步骤中进行。
接着,如图3和图6所示,将定位出的条码图像P2进行二值化处理,将背景转化为白色,将条码图像P2中的黑块或黑条转化为黑色,而条码图像P2中的白块或白条也被转化为白色。需要指出的是,这里的黑色和白色是相对的,将条码图像P2中的黑块或黑条转化为白色,而条码图像P2中的白块或白条转化为黑色也并不影响后续的处理和识别。
S400:对所述二值化图像分别沿水平方向和垂直方向进行投影,得到二值化图像的水平方向投影和垂直方向投影;
随之,如图3和图6所示,将二值化图像P3沿着水平方向(二值化图像P3其中一条边缘的方向)和垂直方向(二值化图像P3另一条边缘的方向)分别建立二值化图像P3的水平方向投影和垂直方向投影。
S500:分别对所述水平方向投影和所述垂直方向投影进行特征提取,得到投影特征;
S600:根据所述投影特征确定所述条码的类型。
而后,如图4、图5、图7和图8所示,在对所述二值化图像分别沿水平方向和垂直方向进行投影,得到二值化图像的水平方向投影和垂直方向投影,并对水平方向投影和垂直方向投影分别进行特征提取,得到投影特征。由于一维码的二值化图像P3仅在水平方向或垂直方向其中的一个方向上投影时产生明显坍缩;而二维码由黑块和白块在编码区域内散列而成,其编码方式决定了黑块大致均匀分布在整个编码区域内,使得二维码的二值化图像P3在水平方向和垂直方向投影时均产生明显坍缩,这也造就了二维码的水平方向投影和垂直方向投影具有明显相似的特征;上述原因导致一维码的水平方向投影和垂直方向投影与二维码的水平方向投影和垂直方向投影这些明显不同的区别特征。比如一维码的二值化图像P3沿水平方向投影发生坍缩时,其必定坍缩为一个连通域,则其垂直方向投影不会坍缩,且任然是多个连通域;而二维码的的二值化图像P3沿水平方向和垂直方向投影时均产生坍缩,其水平方向投影和垂直方向投影基本上都会形成一个连通域,对于特殊的堆叠式二维码,即使其水平方向投影或垂直方向投影形成多个连通域,任然可以通过其二值化图像P3坍缩后所特有的投影特征将之与一维码区分开来。
在此分别以一维码和二维码中比较典型的Code128码和QR码为例,其它一维码与二维码与此类似。如图3所示,横置的Code128码的水平方向投影和垂直方向投影,Code128码的黑条沿水平方向坍缩至堆叠在一起,而黑条沿垂直方向几乎不变(理论上没有变化);如图5所示,为QR码的水平方向投影和垂直方向投影,QR码的水平方向投影和垂直方向投影相对于投影前的二值化图像P3均发生明显坍缩。
最后,根据一维码和二维码的特征并与提取的投影特征进行比对,判断条码为一维码还是二维码。
可选地,分别对所述水平方向投影和所述垂直方向投影进行特征提取,得到投影特征,包括:
沿水平方向对所述水平方向投影进行直线扫描;
统计扫描直线同时穿过的黑条数或白条数的数量X;
沿垂直方向对所述垂直方向投影进行直线扫描;
统计扫描直线同时穿过的黑条数或白条数的数量Y;
将所述黑条数或白条数的数量X,与所述黑条数或白条数的数量Y作为所述投影特征。
可选地,所述根据所述投影特征确定所述条码的类型,包括:
分析所述X与所述Y的数量关系;
比较所述X的最大值Xmax与所述Y的最大值Ymax的大小;
计算所述最大值Xmax与所述最大值Ymax之间较大值与较小值的比值,得到特征值N;
将所述特征值N与第一预设阈值进行比较,以确定所述条码的类型。
可选地,所述将特征值N与第一预设阈值进行比较,以确定所述条码的类型,包括:
若所述特征值N大于所述第一预设阈值,则确定所述条码为一维码;
若所述特征值N小于所述第一预设阈值,则确定所述条码为二维码。
可选地,所述第一预设阈值大于等于2且小于等于7。
分别以3图中的Code128码和图5中的QR码为例,采用直线扫描的方式进行特征提取。当对Code128码的水平方向投影和垂直方向投影进行直线扫描时,由于Code128码的黑条沿水平方向坍缩至堆叠在一起,扫描直线在水平方向投影的的任意位置均穿过一个黑条(这里的黑条指由白条间隔开的黑条,当扫描直线同时穿过黑条再穿过白条而后再穿过黑条时,指的是扫描直线同时穿过了两个黑条,即使这两个黑条在其它位置是连通的,下同),统计扫描直线同时穿过的黑条数X恒等于一;而黑条沿垂直方向几乎不发生坍缩(理论上没有变化),扫描直线在垂直方向投影的的任意位置均穿过至少七个黑条(起始符三条、终止符四条),统计黑条数Y总是大于七,且在任意扫码位置Y值基本保持不变(理论上保持不变);Ymax大于Xmax,Ymax/Xmax总是大于七。当对QR码的水平方向投影进行直线扫描时,扫描直线穿过的黑条数X总是先递增再递减,当对QR码的垂直方向投影进行直线扫描时,扫描直线穿过的黑条数Y也是先递增再递减,且大致满足如下规律:Xmin=Ymin=1,Xmax≈Ymax,则有2>max{Xmax,Ymax}/max{Xmax,Ymax}≥1。故而,对一个条码进行投影特征提取时,当max{Xmax,Ymax}/max{Xmax,Ymax}>7时,也即若所述特征值N大于所述第一预设阈值时,则判断条码为一维码,否则,则判断条码为二维码。
可选地,所述第一预设阈值为7,若所述特征值N介于1和2之间,则确定所述条码为矩阵式二维码;若所述特征值N介于2和7之间,则确定所述条码为堆叠式二维码。
可选地,当确定所述条码为二维码,若所述X的最小值Xmin或Y的最小值Ymin小于等于2,则确定所述条码为矩阵式二维码;若所述最小值Xmin或所述最小值Ymin大于2,则确定所述条码为堆叠式二维码。
由于QR码为矩阵式二维码,对于PDF417等堆叠式二维码而言,有如下关系:Xmin>2且Ymin>2,同时7>max{Xmax,Ymax}/max{Xmax,Ymax},因此,在判断条码为二维码后,可进一步进行判断:当Xmin>2或Ymin>2或7>max{Xmax,Ymax}/max{Xmax,Ymax}>2时,则判断条码为堆叠式二维码。
可选地,分别对所述水平方向投影和所述垂直方向投影进行特征提取,得到投影特征,包括:
检测所述水平方向投影与所述二值化图像的相似度,得到水平相似度;
检测所述垂直方向投影与所述二值化图像的相似度,得到垂直相似度;
将所述水平相似度和所述垂直相似度作为所述投影特征。
可选地,所述水平方向投影与所述二值化图像的重合度为所述水平相似度,所述垂直方向投影与所述二值化图像的重合度为所述垂直相似度,所述根据所述投影特征确定所述条码的类型,包括:
若所述水平相似度或所述垂直相似度达到第二预设阈值,则确定所述条码为一维码;
若所述水平相似度或所述垂直相似度未达到所述第二预设阈值,则确定所述条码为二维码。
可选地,所述水平方向投影与所述二值化图像的黑块的重合度为所述水平相似度,所述垂直方向投影与所述二值化图像的黑块的重合度为垂直相似度,所述根据所述投影特征确定所述条码的类型,包括:
若所述水平相似度或所述垂直相似度达到第二预设阈值,则确定所述条码为一维码;
若所述水平相似度或所述垂直相似度未达到所述第二预设阈值,则确定所述条码为二维码。
由于前述的一维码的水平方向投影和垂直方向投影与二维码的水平方向投影和垂直方向投影具有明显的形态区别,其它实施例中也可基于这些区别特征对一维码和二维码进行区分,如图9、图10、图11和图13所示,为本发明识别模块100的识别方法的另一实施例,其与前一个实施例的区别在于:可分别检测水平方向投影和垂直方向投影与二值化图像P3的相似度,具体来说,可分别检测水平方向投影和垂直方向投影与二值化图像P3的重合度,或者分别检测水平方向投影和垂直方向投影与二值化图像P3的黑块的重合度,得到水平相似度以及垂直相似度。以水平方向投影和垂直方向投影与二值化图像P3的重合度为例,由于一维码的水平方向投影或垂直方向投影其中之一必定与二值化图像P3大致重合,而二维码的水平方向投影和垂直方向投影必定均不与二值化图像P3重合,基于此,当水平方向投影和垂直方向投影其中之一与二值化图像P3的重合度,也即水平相似度以及垂直相似度达到第二预设阈值时,判断条码为一维码;否则,判断条码为二维码。进一步,当水平方向投影和垂直方向投影其中之一与二值化图像P3的黑块的重合面积达到一定的阈值时,判断条码为一维码;否则,判断条码为二维码。更进一步,该阈值为50%,当水平方向投影和垂直方向投影其中之一与二值化图像P3的重合度达到50%以上时,判断条码为一维码;否则,判断条码为二维码。优选地,当水平方向投影和垂直方向投影其中之一与二值化图像P3的重合度达到70%以上时,判断条码为一维码。优选地,当水平方向投影和垂直方向投影其中之一与二值化图像P3的重合度达到90%以上时,判断条码为一维码。
由此可见,本发明实施例提供了一种条码识别方法,将条码的二值化图像P3的沿两条相互垂直的边缘分别建立的水平方向投影和垂直方向投影,分别对水平方向投影和垂直方向投影进行特征提取,根据一维码和二维码各自的水平方向投影和垂直方向投影的特征识别条码为一维码或二维码。由于一维码是由黑条和白条在一个方向上间隔排列而成,使得一维码的二值化图像P3仅在水平方向或垂直方向其中的一个方向上投影时产生明显坍缩;而二维码由黑块和白块在编码区域内散列而成,其编码方式决定了黑块大致均匀分布在整个编码区域内,使得二维码的二值化图像P3在水平方向和垂直方向投影时均产生明显坍缩,且造就了二维码的水平方向投影和垂直方向投影具有明显相似的特征;导致一维码的水平方向投影和垂直方向投影与二维码的水平方向投影和垂直方向投影这些明显不同的区别特征,基于这些区别特征,识别模块100可以快速且准确地区分一维码和二维码,在识别条码为一维码后根据一维码的编码方式来解码,而在识别条码为二维码后则根据二维码的编码方式来解码,提高识别效率。
上面对本发明一种条码识别方法进行了描述,下面对本发明实施例一种条码识别装置进行描述:
如图13所示,本发明的识别装置主要包括:获取模块10、定位模块11、二值化模块12、投影模块13、特征提取模块14和确定模块15。
获取模块10,用于获取条码的灰度图像;
定位模块11,用于对所述灰度图像进行定位,并提取所述灰度图像中的条码图像;
二值化模块12,用于将所述条码图像二值化处理,以获取所述条码的二值化图像;
投影模块13,用于对所述二值化图像分别沿水平方向和垂直方向进行投影,得到二值化图像的水平方向投影和垂直方向投影;
特征提取模块14,用于分别对所述水平方向投影和所述垂直方向投影进行特征提取,得到投影特征;
确定模块15,用于根据所述投影特征确定所述条码的类型。
可选地,所述特征提取模块14包括:
第一扫描单元,用于沿水平方向对所述水平方向投影进行直线扫描;
第一统计单元,用于统计扫描直线同时穿过的黑条数或白条数的数量X;
第二扫描单元,用于沿垂直方向对所述垂直方向投影进行直线扫描;
第二统计单元,用于统计扫描直线同时穿过的黑条数或白条数的数量Y;
特征确定单元,用于将所述黑条数或白条数的数量X,与所述黑条数或白条数的数量Y作为所述投影特征。
可选地,所述确定模块,包括:
分析单元,用于分析所述X与所述Y的数量关系;
第一比较单元,用于比较X的最大值Xmax与Y的最大值Ymax的大小;
计算单元,用于计算所述最大值Xmax与所述最大值Ymax之间较大值与较小值的比值,得到特征值N;
第二比较单元,用于将所述特征值N与第一预设阈值进行比较,以确定条码的类型。
可选地,所述第二比较单元,包括:
第一确定子单元,用于若所述特征值N大于所述第一预设阈值,则确定所述条码为一维码;
第二确定子单元,用于若所述特征值N小于所述第一预设阈值,则确定所述条码为二维码。
可选地,所述第一预设阈值为7,所述第二比较单元,包括:
第三确定子单元,用于若所述特征值N介于1和2之间,则确定所述条码为矩阵式二维码;
第四确定子单元,用于若所述特征值N介于2和7之间,则确定所述条码为堆叠式二维码。
可选地,若所述条码为二维码,所述确定模块,包括:
第五确定子单元,用于若X的最小值Xmin或Y的最小值Ymin小于等于2,则确定所述条码为矩阵式二维码;
第六确定子单元,用于若所述最小值Xmin或所述最小值Ymin大于2,则确定所述条码为堆叠式二维码。
可选地,所述特征提取模块包括:
第一检测单元,用于检测所述水平方向投影与所述二值化图像的相似度,得到水平相似度;
第二检测单元,用于检测所述垂直方向投影与所述二值化图像的相似度,得到垂直相似度。
第三确定单元,用于将所述水平相似度和所述垂直相似度作为所述投影特征。
可选地,所述水平方向投影与所述二值化图像的重合度为所述水平相似度,所述垂直方向投影与所述二值化图像的重合度为所述垂直相似度,所述确定模块包括:
第四确定单元,用于若所述水平相似度或所述垂直相似度达到第二预设阈值,则确定所述条码为一维码;
第五确定单元,若所述水平相似度或所述垂直相似度未达到所述第二预设阈值,则确定所述条码为二维码。
可选地,所述水平方向投影与所述二值化图像的黑块的重合度为所述水平相似度,所述垂直方向投影与所述二值化图像的黑块的重合度为垂直相似度,所述确定模块包括:
第六确定单元,用于若所述水平相似度或所述垂直相似度达到第二预设阈值,则确定所述条码为一维码;
第七确定单元,用于若所述水平相似度或所述垂直相似度未达到所述第二预设阈值,则确定所述条码为二维码。
关于条码识别装置的具体限定可以参见上文中对于条码识别方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于条码识别方法所需要的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种条码识别方法所述的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现条码识别方法所述的步骤。
本发明的条码识别方法、装置、设备及介质具有以下有益效果:
将条码的二值化图像P3的沿两条相互垂直的边缘分别建立的水平方向投影和垂直方向投影,分别对水平方向投影和垂直方向投影进行特征提取,根据一维码和二维码各自的水平方向投影和垂直方向投影的特征识别条码为一维码或二维码。由于一维码是由黑条和白条在一个方向上间隔排列而成,使得一维码的二值化图像P3仅在水平方向或垂直方向其中的一个方向上投影时产生明显坍缩;而二维码由黑块和白块在编码区域内散列而成,其编码方式决定了黑块大致均匀分布在整个编码区域内,使得二维码的二值化图像P3在水平方向和垂直方向投影时均产生明显坍缩,且造就了二维码的水平方向投影和垂直方向投影具有明显相似的特征;导致一维码的水平方向投影和垂直方向投影与二维码的水平方向投影和垂直方向投影这些明显不同的区别特征,基于这些区别特征,识别装置可以快速且准确地区分一维码和二维码,在识别条码为一维码后根据一维码的编码方式来解码,而在识别条码为二维码后则根据二维码的编码方式来解码,提高条码识别效率和准确率。
以上详细说明仅为本发明之较佳实施例的说明,非因此局限本发明之专利范围,所以,凡运用本创作说明书及图示内容所为之等效技术变化,均包含于本创作之专利范围内。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。