一种条码检测方法及设备与流程

文档序号:14714977发布日期:2018-06-16 01:09阅读:266来源:国知局
一种条码检测方法及设备与流程

本发明涉及智能检测技术领域,特别是涉及一种条码检测方法及设备。



背景技术:

现代物流行业发展迅速,条码检测技术作为现代物流仓储中物品编码检索的关键技术手段起到重要作用。随着智能检测领域技术的不断革新,条码检测也从传统的采用扫码枪人工扫码的形式逐步过渡到采用机器视觉的方式实现,这在社会大生产背景下极大程度上提高了工业自动化水平,并有效节约生产成本。

现有的条码检测技术,主要基于视觉图像处理,首先由图像采集装置采集有复杂背景的条码图像,然后利用数字图像处理、机器学习等方法,例如图像滤波、连通域检测、区域生长,以及模式分类等,对条码图像进行去噪和分割处理,最后调用译码模块,得到条码值并显示识别结果。当前主流的基于视觉图像处理的条码检测方法往往鲁棒性不高,且图像检测效果较差。

现有的技术方案中,提出了一种条码快速定位识别的方法,采用基于特征点的模板匹配方法检测条码,利用霍夫变换直线检测的方法获取条码角度,并做双线性插值矫正条码。该方案能够进行条码的自动、快速定位,分割条码区域,最终进行条码识别;对于无粘连情况的条码,检测精度高。但是,该方案一次检测只能处理一个条码,对于邻近、粘连条码的检测效果较差,并且检测耗时大、效率低。



技术实现要素:

本发明实施例的目的在于提供一种条码检测方法及设备,以实现准确检测邻近、粘连条码,且提高条码检测效率。具体技术方案如下:

第一方面,本发明实施例提供了一种条码检测方法,应用于条码检测系统中的终端处理器,所述方法包括:

采集包括至少一个条码的条码图像;

从所述条码图像中获取条码定位团块;

对所述条码定位团块进行角度直方图统计,获得所述条码定位团块的直方图,其中,所述直方图为所述条码定位团块中所有像素点角度值的统计图;

根据所述直方图中波峰的数量,确定所述条码的粘连情况及条码定位策略;

针对不同的粘连情况,根据所述条码定位策略,确定所述条码定位团块中的条码定位信息。

可选的,所述从所述条码图像中获取条码定位团块的步骤,包括:

提取所述条码图像的特征参数,其中,所述条码图像的特征参数包括:所述条码图像中条码的边缘点、所述条码图像中条码的边缘方向、所述边缘点的聚合程度及所述边缘方向的聚合程度;

根据所述特征参数,确定所述条码图像中条码的边缘区域;

分离所述边缘区域以外的区域与所述边缘区域以内的区域,确定所述边缘区域以内的区域为所述条码图像中条码所处的区域;

确定所述条码图像中条码所处的区域为条码定位团块。

可选的,所述根据所述直方图中波峰的数量,确定所述条码的粘连情况及条码定位策略的步骤,包括:

在所述直方图中仅存在一个波峰时,确定所述条码的粘连情况为无粘连或水平临近粘连,并确定所述条码定位策略为宽度扫描策略;

在所述直方图中至少存在两个波峰时,确定所述条码的粘连情况为倾斜粘连,并确定所述条码定位策略为角度直方图峰值特性策略。

可选的,针对所述无粘连或所述水平临近粘连的情况,所述根据所述条码定位策略,确定所述条码定位团块中的条码定位信息的步骤,包括:

获取并根据所述条码定位团块中条码的实际宽度方向与水平方向的夹角,旋转所述条码定位团块,以使所述条码定位团块中条码的实际宽度方向平行于水平方向;

按照预设行间隔对所述条码定位团块进行宽度扫描,获取所述条码的所有像素点的灰度值;

根据所述条码的所有像素点的灰度值,确定所述条码定位团块的边缘点。

第二方面,本发明实施例还提供了一种条码检测设备,所述设备包括:

相机,用于拍摄物体上的条码图像;

终端处理器,用于从所述相机中采集包括条码的条码图像;从所述条码图像中获取条码定位团块;对所述条码定位团块进行角度直方图统计,获得所述条码定位团块的直方图,其中,所述直方图为所述条码定位团块中所有像素点角度值的统计图;根据所述直方图中波峰的数量,确定所述条码的粘连情况及条码定位策略;针对不同的粘连情况,根据所述条码定位策略,确定所述条码定位团块中的条码定位信息;

触发器,用于接收感应信号;根据所述感应信号触发所述相机拍摄所述条码图像。

本发明实施例提供的条码检测方法及设备,通过统计、建立条码图像的条码定位团块所对应的直方图,判断直方图中峰值的数量,来确定条码的粘连情况,能够快速、准确地确定条码的不同粘连情况;同时,针对不同的粘连情况,根据各粘连情况对应的条码定位策略,确定条码的定位信息;本发明实施例只需通过直方图简单、直接地判断条码的粘连情况,不需要经过复杂的算法可以快速的实现条码的检测,从而提高条码检测效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的条码检测方法的第一种流程示意图;

图2为本发明实施例的条码检测方法的第二种流程示意图;

图3为本发明实施例的条码检测方法的第三种流程示意图;

图4为现有技术的库德巴码的结构示意图;

图5为本发明实施例的条码检测方法的第四种流程示意图;

图6为本发明实施例的一种实施装置示意图;

图7为本发明实施例的两个条码倾斜粘连示意图;

图8为本发明实施例的条码水平粘连示意图;

图9为本发明实施例的三个条码倾斜粘连示意图;

图10为本发明实施例的多波峰直方图统计波形图;

图11为本发明实施例的单波峰直方图统计波形图;

图12为本发明实施例的多波谷直方图统计波形图;

图13为本发明实施例的条码检测设备的结构示意图;

图14为本发明实施例的条码检测装置的第一种结构示意图;

图15为本发明实施例的条码检测装置的第二种结构示意图;

图16为本发明实施例的条码检测装置的第三种结构示意图;

图17为本发明实施例的条码检测装置的第四种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了准确检测邻近、粘连条码,且提高条码检测效率,本发明实施例提供了一种条码检测方法及设备。

下面首先对本发明实施例所提供的条码检测方法进行介绍。

需要说明的是,本发明实施例所提供的一种条码检测方法可以应用于物流行业,也可以应用于商场、超市等批发零售行业。

如图1所示,本发明实施例所提供的一种条码检测方法,可以包括如下步骤:

S101,采集包括至少一个条码的条码图像。

其中,条码可以为EAN(European Article Number,欧洲商品码)、39码、128码、库德巴码等条形码;条码图像中至少包括有一个条码,并且在条码图像中包括有多个条码时,条码的摆放情况可以是无序地水平临近粘连和/或倾斜粘连的;条码图像可以是照相机拍摄的条码图片,还可以是摄像机拍摄的影像的某一帧图像,这都是合理的。

需要说明的是,本实施例通过相机终端拍摄条码图像,终端处理器通过输入/输出端口采集相机终端拍摄的条码图像,终端处理器采集的条码图像可以为相机终端拍摄的24位真彩色图像,也可以为相机终端经拍摄、处理后得到的灰度图像,这都是合理的。并且终端处理器采集的条码图像可以是图像质量较高的条码图像,也可以是图像质量较低的条码图像经图像质量增强方法处理后得到的图像质量较高的条码图像。

S102,从条码图像中获取条码定位团块。

其中,条码图像包括了条码所处的区域以及除条码所处的区域之外的背景区域,背景区域包含有采集到的条码图像中条码所处的区域周围的图画、文字等;条码所处的区域可以包括条码覆盖的文字或者图画。

需要说明的是,从条码图像中获取条码定位团块,就是将条码图像中的条码所处的区域与背景区域进行分离,去除与条码检测没有关系的背景区域,剩下的条码所处的区域即为条码定位团块。

需要强调的是,获取条码定位团块的方法,可以是基于图像处理的方法,也可以是采用机器学习的方法,这都是合理的。基于图像处理的方法,首先对条码图像做分块处理并计算分块的图像特征,基于图像特征的有效表达进一步构建能分离背景区域和条码所处的区域的特征模型,最终输出条码定位团块;基于机器学习的方法,将条码灰度图像分割为图像子块,并通过分离正负样本分别提取特征,进而选择合适的分类器进行模式训练学习,最后样本分类得到由图像子块构成的二值图,再执行连通域检测输出获得条码定位团块,其中,通过分离正负样本提取的特征包括HOG(Histogram of Oriented Gradient,方向梯度直方图)、Haar特征(由边缘特征、线性特征、中心特征和对角线特征组合成的特征模板,用于反映图像的灰度变化情况)、LBP(Local Binary Patterns,局部二值模式)等。具体的,基于图像处理的方法及基于机器学习的方法属于现有技术,这里不再赘述。

可选的,在一种具体实现方式中,为了快速定位条码在条码图像中所处的区域,分离条码所处的区域以外的背景区域,所述从条码图像中获取条码定位团块的步骤,可以包括:

提取条码图像的特征参数;其中,条码图像的特征参数至少包括:该条码图像中条码的边缘点、该条码图像中条码的边缘方向、边缘点的聚合程度及边缘方向的聚合程度。通过条码图像的特征参数,可以快速的确定条码的边缘区域,从而确定条码的位置、角度、坐标等信息;然后利用图像分割技术确定条码图像的条码定位团块。

根据特征参数,确定条码图像中条码的边缘区域;

分离边缘区域以外的区域与边缘区域以内的区域,确定边缘区域以内的区域为条码图像中条码所处的区域;

确定条码图像中条码所处的区域为条码定位团块。

需要说明的是,就是将条码图像中的条码所处的区域与背景区域进行分离,去除与条码检测没有关系的背景区域,剩下的条码所处的区域即为条码定位团块。

S103,对条码定位团块进行角度直方图统计,获得该条码定位团块的直方图。

其中,直方图为所述条码定位团块中所有像素点角度值的统计图。建立直方图的步骤可以是:首先,利用预设像素点梯度算子模板获取条码定位团块中所有像素点的纵方向梯度值及横方向梯度值,其中,预设像素点梯度算子模板可以为罗伯茨算子、索贝尔算子和普鲁伊特算子中的任一种;其次,根据公式θ=arctan(a/b),得到像素点的角度值,其中,θ为像素点的角度值,a为纵方向梯度值,b为横方向梯度值;然后,根据像素点的角度值,建立直方图。需要说明的是,罗伯茨算子、索贝尔算子和普鲁伊特算子均属于现有技术,这里不再一一赘述。

需要说明的是,对条码定位团块进行角度直方图统计时,只统计梯度强度满足一定条件的像素点的角度值,进而得到条码定位团块的角度直方图。角度直方图的峰值直接反映了条码图像中条码的摆放情况,为了快速获得条码图像中条码的摆放情况,因此需要获得条码定位团块的直方图。

S104,根据直方图中波峰的数量,确定条码的粘连情况及条码定位策略。

需要说明的是,条码的粘连情况存在两种情况,一种是相互不同方向的条码形成的倾斜粘连,另一种是相同方向的条码因为相互间隔间的纹理干扰导致的水平临近粘连。在经过统计、获得条码定位团块的直方图之后,对直方图进行峰值检测分析,针对无粘连或水平临近粘连的条码,直方图中只存在一个波峰;针对倾斜粘连的条码,直方图中呈现多个波峰,波峰的个数对应着倾斜粘连条码的个数。

需要强调的是,在对直方图进行峰值检测分析之前,直方图可以是经滤波之后得到的无噪声干扰的直方图,也可以是存在噪声干扰的直方图。滤波消除噪声干扰属于现有技术,这里不再赘述。直方图存在噪声干扰时,会形成错误的波峰,可以通过对直方图进行有效的峰值合并处理,以消除噪声干扰。

可选的,在一种具体实现方式中,为了快速、准确的确定条码图像中条码的粘连情况,所述根据直方图中波峰的数量,确定条码的粘连情况及条码定位策略的步骤,包括:

在直方图中仅存在一个波峰时,确定条码的粘连情况为无粘连或水平临近粘连,并确定条码定位策略为宽度扫描策略;

在直方图中至少存在两个波峰时,确定条码的粘连情况为倾斜粘连,并确定条码定位策略为角度直方图峰值特性策略。

需要说明的是,根据上述直方图的建立步骤,一个条码定位团块中各单个条码所对应区域的像素点的角度值相等,因此在统计的过程中,一个条码定位团块中所有单个条码像素点的角度在直方图中呈现不同的角度峰值,每个峰值角度的一定范围以内都属于有效角度,都处于条码区域,剩余部分则是除条码以外的背景区域的角度统计。则通过直方图中波峰的个数可以快速、准确地确定条码定位团块中条码的粘连情况。

需要强调的是,针对水平临近粘连的情况,可以采用宽度扫描的策略对粘连的条码进行分割,从而确定条码定位信息;针对倾斜粘连的情况,可以采用角度直方图峰值特性策略确定条码定位信息,直方图的波谷对应着相互粘连的条码的最大差别,也就是说,在直方图的波谷出现时,说明有条码的倾斜粘连情况,从而可对条码定位团块中粘连的条码进行多波谷阈值的条码分割。

S105,针对不同的粘连情况,根据条码定位策略,确定条码定位团块中的条码定位信息。

其中,条码定位信息可以包括:条码定位团块中条码的个数、条码定位团块中每个条码与水平方向的夹角、条码定位团块中每个条码的坐标信息。

需要说明的是,针对水平临近粘连的情况,可以采用宽度扫描的策略对粘连的条码进行分割,从而确定条码定位信息;针对倾斜粘连的情况,可以采用角度直方图峰值特性策略确定条码定位信息,直方图的波谷对应着相互粘连的条码的最大差别,也就是说,在直方图的波谷出现时,说明有条码的倾斜粘连情况,从而可对条码定位团块中粘连的条码进行多波谷阈值的条码分割。

可选的,在一种具体实现方式中,针对无粘连或水平临近粘连的情况,为了简化水平临近粘连的条码的分割步骤,所述根据条码定位策略,确定条码定位团块中的条码定位信息的步骤,可以包括:

获取并根据条码定位团块中条码的实际宽度方向与水平方向的夹角,旋转条码定位团块,以使条码定位团块中条码的实际宽度方向平行于水平方向;

按照预设行间隔对条码定位团块进行宽度扫描,获取条码的所有像素点的灰度值;

根据条码的所有像素点的灰度值,确定条码定位团块的边缘点;

按照预设行间隔对条码定位团块沿竖直方向从上到下依次进行宽度扫描,根据边缘点的数目,确定每一次扫描得到的宽度单元的数量,其中,宽度单元由任意相邻两个边缘点确定;

统计宽度单元的数量连续小于第一阈值的扫描次数;

在扫描次数到达第二阈值时,分割条码,并记录分割后的条码的个数;

获取分割后的条码所对应的条码定位团块的像素点,确定分割后的条码所对应的条码定位团块的像素点所处区域的质心为条码的坐标;

确定个数及坐标为条码定位团块中的条码定位信息。

需要说明的是,多个条码水平临近粘连时,条码定位团块的摆放位置可能会与水平方向或者竖直方向有一定的夹角,为了分析方便,先将条码定位团块旋转至水平方向;然后通过求导运算获得图像边缘点,其中,边缘点位置一阶导数有极大值、二阶导数过零;根据任一相邻两个边缘点可以确定一个宽度单元;通过宽度扫描可以得到宽度单元的数量,在宽度单元的数量较大时,例如通过扫描得到30个宽度单元或者32个宽度单元,则可判定该次扫描到的是条码;在宽度单元的数量小于第一阈值时,并且连续多次扫描得到的宽度单元的数量均小于该第一阈值,当扫描的次数到达第二阈值时,则可判定该次扫描到的是两个条码的间隔部分,例如可以设定第一阈值为28、第二阈值为5,即扫描得到的宽度单元的数量小于28个,且连续5次扫描得到的宽度单元的数量均小于28个,则判定第5次扫描到的是两个条码的间隔部分,可在第5次扫描的位置进行条码分割。第一阈值和第二阈值可以根据用户的需求或者本领域技术人员的经验进行设定。

需要强调的是,对条码团块进行宽度扫描,可以是逐行扫描,也可以是间隔预设行间隔的依次扫描,这都是合理的。预设行间隔可根据条码的高度等实际情况进行设定。

可选的,所述根据条码的所有像素点的灰度值,确定条码定位团块的边缘点的步骤,可以包括:

根据条码的所有像素点的灰度值,通过公式Y1=X(k)-X(k-1),确定当前像素点的第一一阶导数,其中,Y1为当前像素点的第一一阶导数,X(k)为当前像素点的灰度值,X(k-1)为与当前像素点相邻的任一像素点的灰度值,k为当前像素点,k-1为与当前像素点相邻的任一像素点;

根据条码的所有像素点的灰度值,通过公式Y2=X(k+1)-X(k),确定当前像素点的第二一阶导数,其中,Y2为当前像素点的第二一阶导数,X(k+1)为与当前像素点相邻的除第一相邻像素点以外的任一像素点的灰度值,X(k)为与当前像素点的灰度值,k+1为与当前像素点相邻的除第一相邻像素点以外的任一像素点,k为当前像素点;

通过公式Z(k)=Y2-Y1确定当前像素点的二阶导数,其中,Z(k)为当前像素点的二阶导数,Y2为当前像素点的第二一阶导数,Y1为当前像素点的第一一阶导数,k为当前像素点;

根据第一一阶导数、第二一阶导数及二阶导数,获得条码定位团块的边缘点。

可选的,在一种具体实现方式中,针对倾斜粘连的情况,为了简化倾斜粘连的条码的分割步骤,所述根据条码定位策略,确定条码定位团块中的条码定位信息的步骤,可以包括:

获取所述直方图中所有波谷对应的角度值,并确定所有波谷的角度值为分割阈值;

在直方图中仅存在一个波谷时,确定角度值小于分割阈值的条码为第一类条码、角度值大于分割阈值的条码为第二类条码;

统计第一类条码及第二类条码的总数量,并确定总数量为条码的个数;

确定第一类条码的角度值中的峰值为第一类条码与水平方向所成的角度、第二类条码的角度值中的峰值为第二类条码与水平方向所成的角度;

获取第一类条码所对应的条码定位团块的像素点及第二类条码所对应的条码定位团块的像素点,确定第一类条码所对应的条码定位团块的像素点所处区域的质心为该第一类条码的坐标、第二类条码所对应的条码定位团块的像素点所处区域的质心为该第二类条码的坐标;

确定上述的个数、角度及坐标为条码定位团块中的条码定位信息。

需要说明的是,在直方图的波谷出现时,说明有条码的倾斜粘连情况,在直方图中仅有一个波谷时,条码定位团块中的只有两个条码倾斜粘连,直方图中小于波谷所对应的角度值的像素区域对应一个条码,直方图中大于波谷所对应的角度值的像素区域对应另一个条码,再通过波峰的角度值及条码的像素点的质心的坐标可快速确定条码定位模块的条码定位信息。

可选的,在一种具体实现方式中,为了简化倾斜粘连的条码的分割步骤,针对倾斜粘连的情况,所述根据条码定位策略,确定条码定位团块中的条码定位信息的步骤,还可以包括:

获取所述直方图中所有波谷对应的角度值,并确定所有波谷的角度值为分割阈值

在直方图中存在至少两个波谷时,确定角度值小于所有分割阈值中最小的分割阈值的条码为第三类条码、角度值大于所有分割阈值中最大的分割阈值的条码为第四类条码、角度值大于第一分割阈值且小于第二分割阈值的条码为第五类条码,其中,第一分割阈值为所有分割阈值中的任一分割阈值,第二分割阈值为所有分割阈值中与第一分割阈值相邻的分割阈值;

统计第三类条码、第四类条码及第五类条码的总数量,并确定总数量为条码的个数;

确定第三类条码的角度值中的峰值为该第三类条码与水平方向所成的角度、第四类条码的角度值中的峰值为该第四类条码与水平方向所成的角度、第五类条码的角度值中的峰值为该第五类条码与水平方向所成的角度;

获取第三类条码所对应的条码定位团块的像素点、第四类条码所对应的条码定位团块的像素点及第五类条码所对应的条码定位团块的像素点,确定第三类条码所对应的条码定位团块的像素点所处区域的质心为该第三类条码的坐标、第四类条码所对应的条码定位团块的像素点所处区域的质心为该第四类条码的坐标、第五类条码所对应的条码定位团块的像素点所处区域的质心为该第五类条码的坐标;

确定上述的个数、角度及坐标为条码定位团块中的条码定位信息。

需要说明的是,在直方图中有至少两个波谷时,条码定位团块中的有至少三个条码倾斜粘连,直方图中小于波谷所对应的角度值中最小的角度值的像素区域对应一个条码,直方图中大于波谷所对应的角度值中最大的角度值的像素区域对应一个条码,每相邻两个波谷间的角度值对应的像素区域对应一个条码,这样可以得到条码的个数,再通过波峰的角度值及条码的像素点的质心的坐标可快速确定条码定位模块的条码定位信息。

应用本实施例,通过统计、建立条码图像的条码定位团块所对应的直方图,判断直方图中峰值的数量,来确定条码的粘连情况,能够快速、准确地确定条码的不同粘连情况;同时,针对不同的粘连情况,根据各粘连情况对应的条码定位策略,确定条码的定位信息;只需通过直方图简单、直接地判断条码的粘连情况,不需要经过复杂的算法可以快速的实现条码的检测,从而提高条码检测效率。针对倾斜粘连的情况,通过直方图中波谷对应的角度信息确定条码定位信息,针对水平临近粘连的情况,通过宽度扫描策略确定条码定位信息,从而能够准确地检测邻近、粘连条码,这两种方法均能实现快速确定条码定位信息。

如图2所示,本实施例所提供的一种条码检测方法,在采集包括至少一个条码的条码图像的步骤之后,还可以包括如下步骤:

S106,转换条码图像为灰度图像。

需要说明的是,相机终端设备拍摄的条码图像通常是24位真彩色图,为了有效减少系统数据处理量提高条码检测效率,首先转换条码图像为灰度图像,可以对输入的图像做灰度化处理,即只提取单通道图像数据参与条码检测运算。采用灰度化处理的方法转换条码图像属于现有技术,这里不再赘述。

S107,对所述灰度图像进行预处理,得到预处理后的条码图像。

其中,预处理包括:滤波、增强图像质量、增加图像的对比度等,使图像的清晰度更高、画面质量更好的方法。

需要说明的是,由于人为因素、图像采集过程中场景光照变化及相机的成像质量等因素的影响,终端处理器所采集的条码图像通常存在噪声、污损、光斑等干扰,为了保证条码图像数据的可靠性,通过预设处理算法有效去除条码图像噪声,并增强条码图像质量;通常采用的滤波算法包括:中值滤波算法、高斯滤波算法、维纳滤波算法,等等。滤波算法及图像质量增强算法属于现有技术,这里不再一一赘述。

应用本实施例,通过统计、建立条码图像的条码定位团块所对应的直方图,判断直方图中峰值的数量,来确定条码的粘连情况,能够快速、准确地确定条码的不同粘连情况;同时,针对不同的粘连情况,根据各粘连情况对应的条码定位策略,确定条码的定位信息;本实施例只需通过直方图简单、直接地判断条码的粘连情况,不需要经过复杂的算法可以快速的实现条码的检测,从而提高条码检测效率。针对倾斜粘连的情况,通过直方图中波谷对应的角度信息确定条码定位信息,针对水平临近粘连的情况,通过宽度扫描策略确定条码定位信息,从而能够准确地检测邻近、粘连条码,这两种方法均能实现快速确定条码定位信息。通过条码图像的灰度化处理减少系统数据处理量提高条码检测效率;并通过图像预处理算法有效去除条码图像噪声,并增强条码图像质量。

如图3所示,本实施例所提供的一种条码检测方法,在针对不同的粘连情况,根据条码定位策略,确定条码定位团块中的条码定位信息的步骤之后,还可以包括如下步骤:

S108,根据条码定位信息,提取条码的格式,并确定条码的种类。

其中,条码的种类可以为EAN码、39码、128码、库德巴码等条形码,不同种类的条码具有不同的条码格式,例如,EAN码是国际物品编码协会制定的一种商品用条码,通用于全世界,标准版EAN码表示13位数字,缩短版EAN码表示8位数字;39码是一种可表示数字、字母等信息的条码;128码是一种长度可变、连续性的字母数字条码;库德巴码也可以表示数字和字母信息。

S109,根据条码的种类,确定条码的起始符、数据符及终止符。

需要说明的是,不同种类的条码,都至少包括起始符、数据符及终止符,如图4所示;起始符401用于表示条码的起始位,终止符403用于表示条码的终止位,数据符402由若干条码字符组成,每个条码字符由若干条单元与若干空单元构成;构成条码字符的条单元与空单元又分别包括宽单元和窄单元,每个条码字符可以是由若干宽单元与若干窄单元组成。以库德巴码为例,宽单元用二进制“1”表示,窄单元用二进制“0”表示,每个字符都可以表示为独立的7位二进制形式和相应的宽窄单元形式。

S110,根据条码的种类、条码的种类的编码规则及条码的种类的译码方式,检测数据符,并匹配各字符的编码逻辑。

需要说明的是,不同种类的条码有对应的固定的编码规则和译码方式,这里的译码方式可以是基于图像处理的译码方式。不同种类的条码所对应的编码规则及基于图像处理的译码方式属于现有技术,这里不再一一赘述。

S111,根据编码逻辑,解析各字符的码字,通过译码得到条码对应的内容。

需要说明的是,编码逻辑为条码中的一个宽度单元的编码内容与各字符所对应的编码逻辑,基于图像处理的译码方式,通过匹配各字符与宽度单元的编码内容之间的编码逻辑实现码字的解析,最终完成译码。当然,译码方式还可以是基于模板匹配的译码方式,也可以是模式识别的译码方式,这都是合理的。条码对应的内容,可以包括数字、字母、汉字,等等;通过终端处理器译码后,在屏显上显示条码对应的内容。

应用本实施例,通过统计、建立条码图像的条码定位团块所对应的直方图,判断直方图中峰值的数量,来确定条码的粘连情况,能够快速、准确地确定条码的不同粘连情况;同时,针对不同的粘连情况,根据各粘连情况对应的条码定位策略,确定条码的定位信息;本实施例只需通过直方图简单、直接地判断条码的粘连情况,不需要经过复杂的算法可以快速的实现条码的检测,从而提高条码检测效率。针对倾斜粘连的情况,通过直方图中波谷对应的角度信息确定条码定位信息,针对水平临近粘连的情况,通过宽度扫描策略确定条码定位信息,从而能够准确地检测邻近、粘连条码,这两种方法均能实现快速确定条码定位信息。并通过提取条码的宽度信息,检测宽度单元,并匹配各字符的编码逻辑,解析各字符的码字,通过译码快速得到条码对应的内容。

如图5所示,本实施例所提供的一种条码检测方法,在一种实现方式中,所述根据直方图中波峰的数量,确定条码的粘连情况及条码定位策略的步骤之前,还可以包括如下步骤:

S112,获取直方图中所有波峰对应的角度值。

需要说明的是,在终端处理器获得条码定位团块的直方图后,终端处理器判断直方图中所有的波峰,在直方图存在噪声干扰时,会形成错误的波峰,即会形成多余的波峰,通过获取波峰对应的角度值,为后续步骤消除噪声产生的影响提供数据。

S113,计算所有波峰中任意相邻两个波峰的角度差。

需要说明的是,在直方图存在噪声干扰时,干扰形成的错误的波峰与相邻波峰的角度差会相对小于两个条码的相邻波峰的角度差。需要强调的是,如果任意相邻两个波峰的角度差小于零,则取该角度差的绝对值为相邻两个波峰的角度差。

S114,判断角度差是否小于预设角度差,如果是,则执行S115;如果否,则执行S116。

需要说明的是,预设角度差可以为根据倾斜粘连的条码的实际粘连的角度设定,也可以为较小值的预设角度差,该较小值为可以抵消大部分噪声干扰产生的波峰与相邻波峰的角度差。如果角度差小于预设角度差,则说明有一个波峰为噪声产生的;如果角度差大于预设角度差,则说明两个相邻波峰为倾斜粘连的两个条码。

S115,合并相邻两个波峰。

需要说明的是,在角度差小于预设角度差时,有一个波峰为噪声产生,则合并该相邻两个波峰,合并相邻两个波峰,可以是保留第一个波峰、删除第二个波峰,也可以是保留第二个波峰、删除第一个波峰,还可以是计算并保留两个波峰的平均值、删除上述两个波峰,等等,这都是合理的。

S116,在角度大于预设角度差时,统计波峰的数量。

需要说明的是,在角度差大于预设角度差时,存在两个相邻条码倾斜粘连的情况,则统计波峰的数量,即对应实际粘连条码的个数。

应用本实施例,通过统计、建立条码图像的条码定位团块所对应的直方图,判断直方图中峰值的数量,来确定条码的粘连情况,能够快速、准确地确定条码的不同粘连情况;同时,针对不同的粘连情况,根据各粘连情况对应的条码定位策略,确定条码的定位信息;本实施例只需通过直方图简单、直接地判断条码的粘连情况,不需要经过复杂的算法可以快速的实现条码的检测,从而提高条码检测效率。针对倾斜粘连的情况,通过直方图中波谷对应的角度信息确定条码定位信息,针对水平临近粘连的情况,通过宽度扫描策略确定条码定位信息,从而能够准确地检测邻近、粘连条码,这两种方法均能实现快速确定条码定位信息。并通过判断相邻两个峰值的角度差与预设角度差的大小,利用合并的方法抵消噪声干扰对直方图的影响。

下面结合具体的应用实例,对本发明实施例所提供的条码检测方法再进行详细说明。

如图6所示,提供了本发明实施例的一种实施装置,滚轮601、滚轮602带动传送带605朝方向608运输传动,传送带上表面载有物体609、物体610、物体611,各物体表面粘贴有若干条码,分别标号为612、613、614,615、616、617、618、619及620,传送带左侧两边分别装有光电触发装置603、光电触发装置604,以红外射线607作为触发信号,当有物品通过,阻隔红外射线607在光电触发装置603、光电触发装置604之间的发射和接收,则系统装置向相机606发送图像采集命令,相机606连接终端处理器621,相机606所拍摄的图片传输到终端处理器621进行条码检测识别,终端处理器621可作为相机606内置模块单元或是后台服务器,终端处理器621连接屏显622,条码检测识别结果通过屏显622显示。

终端处理器621采集包括条码的条码图像,条码图像中条码粘连的发生存在两种情况,一种是相互不同方向的条码形成的倾斜粘连,如图7所示,对应图6中的条码612、条码613;另一种是相同方向的条码因为相互间隔间的纹理干扰导致的水平粘连,如图8所示,对应图6中的条码615、条码616。

终端处理器621首先从条码图像中获取条码定位团块,然后对条码定位团块进行角度直方图统计,通过对如图7所示的条码进行角度直方图统计,得到如图10所示的直方图统计波形图,该直方图有两个波峰、一个波谷,假设预设角度差为15度,两个波峰所对应的角度作差得到30度,则说明有两个条码:条码612与条码613倾斜粘连,且角度值小于波谷所对应的角度值的部分为条码613,角度值大于波谷所对应的角度值的部分为条码612,通过对图10所示的直方图进行分析,第一个波峰所对应的角度值为条码613与水平方向所成的角度值30度,第二个波峰所对应的角度值为条码612与水平方向所成的角度值0度,并且确定条码612、条码613的坐标,根据条码612与条码613的角度值、坐标对条码612、条码613进行分割,再对条码612、条码613进行格式识别,确定条码612和条码613的种类,假如条码612和条码613均为库德巴码,根据库德巴码的编码规则,提取条码612和条码613的数据符,对数据符进行译码,得到条码对应的内容。

终端处理器621首先从条码图像中获取条码定位团块,然后对条码定位团块进行角度直方图统计,通过对如图8所示的条码进行角度直方图统计,得到如图11所示的直方图统计波形图,该直方图仅有一个波峰,对条码定位团块沿竖直方向从上到下逐行进行宽度扫描,通过扫描得到各行宽度单元的数量,当连续5次扫描得到宽度单元的数量小于第一阈值28个,则通过条码分割得到条码615与条码616,通过分割、确定条码615、条码616的坐标,再对条码615、条码616进行格式识别,确定条码615和条码616的种类,假如条码615和条码616均为库德巴码,根据库德巴码的编码规则,提取条码612和条码613的数据符,对数据符进行译码,得到条码对应的内容。

在检测到至少三个条码粘连时,终端处理器621首先从条码图像中获取条码定位团块,然后对条码定位团块进行角度直方图统计,通过对如图9所示的条码进行角度直方图统计,得到如图12所示的直方图统计波形图,该直方图有三个波峰、两个波谷,假设预设角度差为15度,三个波峰中两两之间所对应的角度作差得到30度,则说明有三个条码:条码901、条码902及条码903倾斜粘连,且角度值小于角度值最小的波谷所对应的角度值的部分为条码903,角度值大于角度值最大的波谷所对应的角度值的部分为条码901,角度值介于角度值最小与角度值最大的波谷所对应的角度值的部分为条码902,通过对图12所示的直方图进行分析,第一个波峰所对应的角度值为条码903与水平方向所成的角度值60度,第二个波峰所对应的角度值为条码902与水平方向所成的角度值30度,第三个波峰所对应的角度值为条码901与水平方向所成的角度值0度,并且确定条码901、条码902、条码903的坐标,根据条码901、条码902与条码903的角度值、坐标对条码901、条码902、条码903进行分割,再对条码901、条码902、条码903进行格式识别,确定条码901、条码902和条码903的种类,假如条码901、条码902和条码903均为库德巴码,根据库德巴码的编码规则,提取条码901、条码902和条码903的数据符,对数据符进行译码,得到条码对应的内容。

与现有技术相比,本方案中,通过统计、建立条码图像的条码定位团块所对应的直方图,判断直方图中峰值的数量,来确定条码的粘连情况,能够快速、准确地确定条码的不同粘连情况;同时,针对不同的粘连情况,根据各粘连情况对应的条码定位策略,确定条码的定位信息;本实施例只需通过直方图简单、直接地判断条码的粘连情况,不需要经过复杂的算法可以快速的实现条码的检测,从而提高条码检测效率。针对倾斜粘连的情况,通过直方图中波谷对应的角度信息确定条码定位信息,针对水平临近粘连的情况,通过宽度扫描策略确定条码定位信息,从而能够准确地检测邻近、粘连条码,这两种方法均能实现快速确定条码定位信息。

相应于上述条码检测方法实施例,如图13所示,本发明实施例提供一种条码检测设备,所述设备可以包括:

相机1301,用于拍摄物体上的条码图像;

终端处理器1302,用于从所述相机中采集包括条码的条码图像;从所述条码图像中获取条码定位团块;对所述条码定位团块进行角度直方图统计,获得所述条码定位团块的直方图,其中,所述直方图为所述条码定位团块中所有像素点角度值的统计图;根据所述直方图中波峰的数量,确定所述条码的粘连情况及条码定位策略;针对不同的粘连情况,根据所述条码定位策略,确定所述条码定位团块中的条码定位信息;

触发器1303,用于接收感应信号;根据所述感应信号触发所述相机拍摄所述条码图像。

应用本实施例,通过统计、建立条码图像的条码定位团块所对应的直方图,判断直方图中峰值的数量,来确定条码的粘连情况,能够快速、准确地确定条码的不同粘连情况;同时,针对不同的粘连情况,根据各粘连情况对应的条码定位策略,确定条码的定位信息;本实施例只需通过直方图简单、直接地判断条码的粘连情况,不需要经过复杂的算法可以快速的实现条码的检测,从而提高条码检测效率。

可选的,所述终端处理器1302,具体用于:

提取所述条码图像的特征参数,其中,所述条码图像的特征参数包括:所述条码图像中条码的边缘点、所述条码图像中条码的边缘方向、所述边缘点的聚合程度及所述边缘方向的聚合程度;

根据所述特征参数,确定所述条码图像中条码的边缘区域;

分离所述边缘区域以外的区域与所述边缘区域以内的区域,确定所述边缘区域以内的区域为所述条码图像中条码所处的区域;

确定所述条码图像中条码所处的区域为条码定位团块。

需要说明的是,就是将条码图像中的条码所处的区域与背景区域进行分离,去除与条码检测没有关系的背景区域,剩下的条码所处的区域即为条码定位团块。

可选的,所述终端处理器1302,具体用于:

在所述直方图中仅存在一个波峰时,确定所述条码的粘连情况为无粘连或水平临近粘连,并确定所述条码定位策略为宽度扫描策略;

在所述直方图中至少存在两个波峰时,确定所述条码的粘连情况为倾斜粘连,并确定所述条码定位策略为角度直方图峰值特性策略。

需要说明的是,根据上述终端处理器的用途,一个条码定位团块中各单个条码所对应区域的像素点的角度值相等,因此在统计的过程中,一个条码定位团块中所有单个条码像素点的角度在直方图中呈现不同的角度峰值,每个峰值角度的一定范围以内都属于有效角度,都处于条码区域,剩余部分则是除条码以外的背景区域的角度统计。则通过直方图中波峰的个数可以快速、准确地确定条码定位团块中条码的粘连情况。

可选的,所述终端处理器1302,具体用于:

获取并根据所述条码定位团块中条码的实际宽度方向与水平方向的夹角,旋转所述条码定位团块,以使所述条码定位团块中条码的实际宽度方向平行于水平方向;

按照预设行间隔对所述条码定位团块进行宽度扫描,获取所述条码的所有像素点的灰度值;

根据所述条码的所有像素点的灰度值,确定所述条码定位团块的边缘点;

按照预设行间隔对所述条码定位团块沿竖直方向从上到下依次进行宽度扫描,根据所述边缘点的数目,确定宽度单元的数量,其中,所述宽度单元由任意相邻两个边缘点确定;

统计所述宽度单元的数量连续小于第一阈值的行数;

在所述行数到达第二阈值时,分割所述条码,并记录分割后的条码的个数;

获取所述分割后的条码所对应的条码定位团块的像素点,确定所述分割后的条码所对应的条码定位团块的像素点所处区域的质心为所述条码的坐标;

确定所述个数及所述坐标为所述条码定位团块中的条码定位信息。

可选的,所述根据所述条码的所有像素点的灰度值,确定所述条码定位团块的边缘点的步骤,包括:

根据条码的所有像素点的灰度值,通过公式Y1=X(k)-X(k-1),确定当前像素点的第一一阶导数,其中,Y1为当前像素点的第一一阶导数,X(k)为当前像素点的灰度值,X(k-1)为与当前像素点相邻的任一像素点的灰度值,k为当前像素点,k-1为与当前像素点相邻的任一像素点;

根据条码的所有像素点的灰度值,通过公式Y2=X(k+1)-X(k),确定当前像素点的第二一阶导数,其中,Y2为当前像素点的第二一阶导数,X(k+1)为与当前像素点相邻的除第一相邻像素点以外的任一像素点的灰度值,X(k)为与当前像素点的灰度值,k+1为与当前像素点相邻的除第一相邻像素点以外的任一像素点,k为当前像素点;

通过公式Z(k)=Y2-Y1确定当前像素点的二阶导数,其中,Z(k)为当前像素点的二阶导数,Y2为当前像素点的第二一阶导数,Y1为当前像素点的第一一阶导数,k为当前像素点;

根据第一一阶导数、第二一阶导数及二阶导数,获得条码定位团块的边缘点。

需要说明的是,多个条码水平临近粘连时,条码定位团块的摆放位置可能会与水平方向或者竖直方向有一定的夹角,为了分析方便,先将条码定位团块旋转至水平方向;然后通过求导运算获得图像边缘点,其中,边缘点位置一阶导数有极大值、二阶导数过零;根据任一相邻两个边缘点可以确定一个宽度单元;通过宽度扫描可以得到宽度单元的数量,在宽度单元的数量较大时,则可判定该次扫描到的是条码;在宽度单元的数量小于第一阈值时,并且连续多次扫描得到的宽度单元的数量均小于该第一阈值,当扫描的次数到达第二阈值时,则可判定该次扫描到的是两个条码的间隔部分。

可选的,所述终端处理器1302,具体用于:

获取所述直方图中所有波谷对应的角度值,并确定所有波谷的角度值为分割阈值;

在所述直方图中仅存在一个波谷时,确定角度值小于所述分割阈值的条码为第一类条码、角度值大于所述分割阈值的条码为第二类条码;

统计所述第一类条码及所述第二类条码的总数量,并确定所述总数量为条码的个数;

确定所述第一类条码的角度值中的峰值为所述第一类条码与水平方向所成的角度、所述第二类条码的角度值中的峰值为所述第二类条码与水平方向所成的角度;

获取所述第一类条码所对应的条码定位团块的像素点及所述第二类条码所对应的条码定位团块的像素点,确定所述第一类条码所对应的条码定位团块的像素点所处区域的质心为所述第一类条码的坐标、所述第二类条码所对应的条码定位团块的像素点所处区域的质心为所述第二类条码的坐标;

确定所述个数、所述角度及所述坐标为所述条码定位团块中的条码定位信息。

需要说明的是,在直方图的波谷出现时,说明有条码的倾斜粘连情况,在直方图中仅有一个波谷时,条码定位团块中的只有两个条码倾斜粘连,直方图中小于波谷所对应的角度值的像素区域对应一个条码,直方图中大于波谷所对应的角度值的像素区域对应另一个条码,再通过波峰的角度值及条码的像素点的质心的坐标可快速确定条码定位模块的条码定位信息。

可选的,所述终端处理器1302,具体用于:

获取所述直方图中所有波谷对应的角度值,并确定所有波谷的角度值为分割阈值

在所述直方图中存在至少两个波谷时,确定角度值小于所有分割阈值中最小的分割阈值的条码为第三类条码、角度值大于所有分割阈值中最大的分割阈值的条码为第四类条码、角度值大于第一分割阈值且小于第二分割阈值的条码为第五类条码,其中,所述第一分割阈值为所有分割阈值中的任一分割阈值,所述第二分割阈值为所有分割阈值中与所述第一分割阈值相邻的分割阈值;

统计所述第三类条码、所述第四类条码及所述第五类条码的总数量,并确定所述总数量为条码的个数;

确定所述第三类条码的角度值中的峰值为所述第三类条码与水平方向所成的角度、所述第四类条码的角度值中的峰值为所述第四类条码与水平方向所成的角度、所述第五类条码的角度值中的峰值为所述第五类条码与水平方向所成的角度;

获取所述第三类条码所对应的条码定位团块的像素点、所述第四类条码所对应的条码定位团块的像素点及所述第五类条码所对应的条码定位团块的像素点,确定所述第三类条码所对应的条码定位团块的像素点所处区域的质心为所述第三类条码的坐标、所述第四类条码所对应的条码定位团块的像素点所处区域的质心为所述第四类条码的坐标、所述第五类条码所对应的条码定位团块的像素点所处区域的质心为所述第五类条码的坐标;

确定所述个数、所述角度及所述坐标为所述条码定位团块中的条码定位信息。

需要说明的是,在直方图中有至少两个波谷时,条码定位团块中的有至少三个条码倾斜粘连,直方图中小于波谷所对应的角度值中最小的角度值的像素区域对应一个条码,直方图中大于波谷所对应的角度值中最大的角度值的像素区域对应一个条码,每相邻两个波谷间的角度值对应的像素区域对应一个条码,这样可以得到条码的个数,再通过波峰的角度值及条码的像素点的质心的坐标可快速确定条码定位模块的条码定位信息。

可选的,所述终端处理器1302,还用于:

转换所述条码图像为灰度图像;

对所述灰度图像进行预处理,得到预处理后的条码图像,其中,所述预设处理包括:滤波及增强图像质量。

可选的,所述终端处理器1302,还用于:

根据所述条码定位信息,获取条码的格式,并确定所述条码的种类;

根据所述条码的种类,获取所述条码的起始符、数据符及终止符;

根据所述条码的种类、所述条码的种类的编码规则及所述条码的种类的译码方式,检测所述数据符,并匹配各字符的编码逻辑;

根据所述编码逻辑,解析各字符的码字,通过译码得到所述条码对应的内容。

可选的,所述终端处理器1302,还用于:

获取所述直方图中所有波峰对应的角度值;

计算所有波峰中任意相邻两个波峰的角度差;

在所述角度差小于预设角度差时,合并所述相邻两个波峰;

在所述角度大于所述预设角度差时,统计波峰的数量。

可选的,所述感应信号为:光电感应信号或重力感应信号。

需要说明的是,本发明实施例的条码检测设备为应用上述条码检测方法的设备,则上述条码检测方法的所有实施例均适用于该设备,且均能达到相同或相似的有益效果。

相应于上述条码检测方法及设备实施例,如图14所示,本发明实施例还提供了一种条码检测装置,所述装置可以包括:

采集模块1401,用于采集包括至少一个条码的条码图像;

第一获取模块1402,用于从所述条码图像中获取条码定位团块;

获得模块1403,用于对所述条码定位团块进行角度直方图统计,获得所述条码定位团块的直方图,其中,所述直方图为所述条码定位团块中所有像素点角度值的统计图;

第一确定模块1404,用于根据所述直方图中波峰的数量,确定所述条码的粘连情况及条码定位策略。

第二确定模块1405,用于针对不同的粘连情况,根据所述条码定位策略,确定所述条码定位团块中的条码定位信息。

应用本实施例,通过统计、建立条码图像的条码定位团块所对应的直方图,判断直方图中峰值的数量,来确定条码的粘连情况,能够快速、准确地确定条码的不同粘连情况;同时,针对不同的粘连情况,根据各粘连情况对应的条码定位策略,确定条码的定位信息;本发明实施例只需通过直方图简单、直接地判断条码的粘连情况,不需要经过复杂的算法可以快速的实现条码的检测,从而提高条码检测效率。

可选的,为了快速定位条码在条码图像中所处的区域,分离条码所处的区域以外的背景区域,所述第一获取模块1402,可以包括:

提取子模块,用于提取所述条码图像的特征参数,其中,所述条码图像的特征参数包括:所述条码图像中条码的边缘点、所述条码图像中条码的边缘方向、所述边缘点的聚合程度及所述边缘方向的聚合程度;

第一确定子模块,用于根据所述特征参数,确定所述条码图像中条码的边缘区域;

分离子模块,用于分离所述边缘区域以外的区域与所述边缘区域以内的区域,确定所述边缘区域以内的区域为所述条码图像中条码所处的区域;

第二确定子模块,用于确定所述条码图像中条码所处的区域为条码定位团块。

可选的,所述第一确定模块1404,可以包括:

第三确定子模块,用于在所述直方图中仅存在一个波峰时,确定所述条码的粘连情况为无粘连或水平临近粘连,并确定所述条码定位策略为宽度扫描策略;

第四确定子模块,用于在所述直方图中至少存在两个波峰时,确定所述条码的粘连情况为倾斜粘连,并确定所述条码定位策略为角度直方图峰值特性策略。

可选的,针对所述无粘连或所述水平临近粘连的情况,所述第二确定模块1405,可以包括:

旋转子模块,用于获取并根据所述条码定位团块中条码的实际宽度方向与水平方向的夹角,旋转所述条码定位团块,以使所述条码定位团块中条码的实际宽度方向平行于水平方向;

获取子模块,用于按照预设行间隔对所述条码定位团块进行宽度扫描,获取所述条码的所有像素点的灰度值;

边缘点确定子模块,用于根据所述条码的所有像素点的灰度值,确定所述条码定位团块边缘点;

第五确定子模块,用于按照预设行间隔对所述条码定位团块沿竖直方向从上到下依次进行宽度扫描,根据所述边缘点的数目,确定每一次扫描得到的宽度单元的数量,其中,所述宽度单元由任意相邻两个边缘点确定;

统计子模块,用于统计所述宽度单元的数量连续小于第一阈值的扫描次数;

分割子模块,用于在所述扫描次数到达第二阈值时,分割所述条码,并记录分割后的条码的个数;

第六确定子模块,用于获取所述分割后的条码所对应的条码定位团块的像素点,确定所述分割后的条码所对应的条码定位团块的像素点所处区域的质心为所述条码的坐标;

第七确定子模块,用于确定所述个数及所述坐标为所述条码定位团块中的条码定位信息。

可选的,所述边缘点确定子模块,可以包括:

第一一阶导数确定单元,用于根据所述条码的所有像素点的灰度值,通过公式Y1=X(k)-X(k-1),确定当前像素点的第一一阶导数,其中,Y1为当前像素点的第一一阶导数,X(k)为当前像素点的灰度值,X(k-1)为与当前像素点相邻的任一像素点的灰度值,k为当前像素点,k-1为与当前像素点相邻的任一像素点;

第二一阶导数确定单元,用于根据条码的所有像素点的灰度值,通过公式Y2=X(k+1)-X(k),确定当前像素点的第二一阶导数,其中,Y2为当前像素点的第二一阶导数,X(k+1)为与当前像素点相邻的除第一相邻像素点以外的任一像素点的灰度值,X(k)为与当前像素点的灰度值,k+1为与当前像素点相邻的除第一相邻像素点以外的任一像素点,k为当前像素点;

二阶导数确定单元,用于通过公式Z(k)=Y2-Y1确定当前像素点的二阶导数,其中,Z(k)为当前像素点的二阶导数,Y2为当前像素点的第二一阶导数,Y1为当前像素点的第一一阶导数,k为当前像素点;

获得单元,用于根据所述第一一阶导数、所述第二一阶导数及所述二阶导数,获得所述条码定位团块的边缘点。

可选的,针对所述倾斜粘连的情况,所述第二确定模块1405,可以包括:

第八确定子模块,用于获取所述直方图中所有波谷对应的角度值,并确定所有波谷的角度值为分割阈值;

第九确定子模块,用于在所述直方图中仅存在一个波谷时,确定角度值小于所述分割阈值的条码为第一类条码、角度值大于所述分割阈值的条码为第二类条码;

第一个数确定子模块,用于统计所述第一类条码及所述第二类条码的总数量,并确定所述总数量为条码的个数;

第一角度确定子模块,用于确定所述第一类条码的角度值中的峰值为所述第一类条码与水平方向所成的角度、所述第二类条码的角度值中的峰值为所述第二类条码与水平方向所成的角度;

第一坐标确定子模块,用于获取所述第一类条码所对应的条码定位团块的像素点及所述第二类条码所对应的条码定位团块的像素点,确定所述第一类条码所对应的条码定位团块的像素点所处区域的质心为所述第一类条码的坐标、所述第二类条码所对应的条码定位团块的像素点所处区域的质心为所述第二类条码的坐标;

第十确定子模块,用于确定所述个数、所述角度及所述坐标为所述条码定位团块中的条码定位信息。

可选的,针对所述倾斜粘连的情况,所述第二确定模块1405,还可以包括:

第十一确定子模块,用于获取所述直方图中所有波谷对应的角度值,并确定所有波谷的角度值为分割阈值;

第十二确定子模块,用于在所述直方图中存在至少两个波谷时,确定角度值小于所有分割阈值中最小的分割阈值的条码为第三类条码、角度值大于所有分割阈值中最大的分割阈值的条码为第四类条码、角度值大于第一分割阈值且小于第二分割阈值的条码为第五类条码,其中,所述第一分割阈值为所有分割阈值中的任一分割阈值,所述第二分割阈值为所有分割阈值中与所述第一分割阈值相邻的分割阈值;

第二个数确定子模块,用于统计所述第三类条码、所述第四类条码及所述第五类条码的总数量,并确定所述总数量为条码的个数;

第二角度确定子模块,用于确定所述第三类条码的角度值中的峰值为所述第三类条码与水平方向所成的角度、所述第四类条码的角度值中的峰值为所述第四类条码与水平方向所成的角度、所述第五类条码的角度值中的峰值为所述第五类条码与水平方向所成的角度;

第二坐标确定子模块,用于获取所述第三类条码所对应的条码定位团块的像素点、所述第四类条码所对应的条码定位团块的像素点及所述第五类条码所对应的条码定位团块的像素点,确定所述第三类条码所对应的条码定位团块的像素点所处区域的质心为所述第三类条码的坐标、所述第四类条码所对应的条码定位团块的像素点所处区域的质心为所述第四类条码的坐标、所述第五类条码所对应的条码定位团块的像素点所处区域的质心为所述第五类条码的坐标;

第十三确定子模块,用于确定所述个数、所述角度及所述坐标为所述条码定位团块中的条码定位信息。

更进一步的,在包含采集模块1401、第一获取模块1402、获得模块1403、第一确定模块1404、第二确定模块1405的基础上,如图15所示,本发明实施例所提供的一种条码检测装置还可以包括:

转换模块1406,用于转换所述条码图像为灰度图像;

预处理模块1407,用于对所述灰度图像进行预处理,得到预处理后的条码图像,其中,所述预处理包括:滤波及增强图像质量。

应用本实施例,通过统计、建立条码图像的条码定位团块所对应的直方图,判断直方图中峰值的数量,来确定条码的粘连情况,能够快速、准确地确定条码的不同粘连情况;同时,针对不同的粘连情况,根据各粘连情况对应的条码定位策略,确定条码的定位信息;本发明实施例只需通过直方图简单、直接地判断条码的粘连情况,不需要经过复杂的算法可以快速的实现条码的检测,从而提高条码检测效率;并通过图像预处理算法有效去除条码图像噪声,并增强条码图像质量。

更进一步的,在包含采集模块1401、第一获取模块1402、获得模块1403、第一确定模块1404、第二确定模块1405的基础上,如图16所示,本发明实施例所提供的一种条码检测装置还可以包括:

第三确定模块1408,用于根据所述条码定位信息,获取条码的格式,并确定所述条码的种类;

第四确定模块1409,用于根据所述条码的种类,获取所述条码的起始符、数据符及终止符;

匹配模块1410,用于根据所述条码的种类、所述条码的种类的编码规则及所述条码的种类的译码方式,检测所述数据符,并匹配各字符的编码逻辑;

译码模块1411,用于根据所述编码逻辑,解析各字符的码字,通过译码得到所述条码对应的内容。

应用本实施例,通过统计、建立条码图像的条码定位团块所对应的直方图,判断直方图中峰值的数量,来确定条码的粘连情况,能够快速、准确地确定条码的不同粘连情况;同时,针对不同的粘连情况,根据各粘连情况对应的条码定位策略,确定条码的定位信息;本发明实施例只需通过直方图简单、直接地判断条码的粘连情况,不需要经过复杂的算法可以快速的实现条码的检测,从而提高条码检测效率;并通过提取条码的宽度信息,检测宽度单元,并匹配各字符的编码逻辑,解析各字符的码字,通过译码快速得到条码对应的内容。

更进一步的,在包含采集模块1401、第一获取模块1402、获得模块1403、第一确定模块1404、第二确定模块1405的基础上,如图17所示,本发明实施例所提供的一种条码检测装置还可以包括:

第二获取模块1412,用于获取所述直方图中所有波峰对应的角度值;

计算模块1413,用于计算所有波峰中任意相邻两个波峰的角度差;

合并模块1414,用于在所述角度差小于预设角度差时,合并所述相邻两个波峰;

统计模块1415,用于在所述角度大于所述预设角度差时,统计波峰的数量。

应用本实施例,通过统计、建立条码图像的条码定位团块所对应的直方图,判断直方图中峰值的数量,来确定条码的粘连情况,能够快速、准确地确定条码的不同粘连情况;同时,针对不同的粘连情况,根据各粘连情况对应的条码定位策略,确定条码的定位信息;本发明实施例只需通过直方图简单、直接地判断条码的粘连情况,不需要经过复杂的算法可以快速的实现条码的检测,从而提高条码检测效率;并通过判断相邻两个峰值的角度差与预设角度差的大小,利用合并的方法抵消噪声干扰对直方图的影响。

可以理解的是,本发明实施例的另一实施例中,条码检测装置可以同时包括:采集模块1401、第一获取模块1402、获得模块1403、第一确定模块1404、第二确定模块1405、转换模块1406、预处理模块1407、第三确定模块1408、第四确定模块1409、匹配模块1410、译码模块1411、第二获取模块1412、计算模块1413、合并模块1414和统计模块1415。

需要说明的是,本发明实施例的条码检测装置为上述条码检测设备的终端处理器中应用条码检测方法的装置,则上述条码检测方法及条码检测设备的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1