一种点阵码快速识读方法、设备和存储介质转让专利

申请号 : CN202210066165.3

文献号 : CN114492496B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈绳旭马吉良何荣茂王秋婉

申请人 : 三维码(厦门)网络科技有限公司

摘要 :

本发明涉及一种点阵码快速识别方法,包括以下步骤:获取包含点阵码的待识别图像;将待识别图像转化为单通道的灰度图像;确定灰度图像的中心点;预设一灰度阈值,遍历灰度图像的中心点所在行中的像素点,得出增边界和减边界;通过增边界和减边界确定对应的码点的尺寸信息,根据码点的尺寸信息剔除非好点,并采用交叉法判断寻找好点作为第一好点;从第一好点开始寻找第二好点;通过第一好点和第二好点建立直角坐标系;以第二好点为起点,在直角坐标系中寻找所有好点的坐标;根据所有好点的坐标确定一矩形边界,在矩形边界内两好点之间的空白区域进行补点,将矩形边界内的所有点转换为0、1编码矩阵,对编码矩阵进行解码,得到点阵码的值。

权利要求 :

1.一种点阵码快速识别方法,其特征在于,包括以下步骤:

获取包含点阵码的待识别图像,并获取待识别图像的尺寸信息;

将待识别图像转化为单通道的灰度图像;

根据待识别图像的尺寸信息计算并确定灰度图像的中心点;

预设一灰度阈值,遍历灰度图像的中心点所在行中相邻两像素点的灰度差并与灰度阈值进行比对,得出该行所有增边界和减边界的位置信息;

选取一对相邻增边界和减边界的位置信息确定该相邻增边界和减边界对应的码点的尺寸信息,根据码点的尺寸信息剔除非好点,并采用交叉法判断该码点是否为好点;若为非好点,则选取另一对相邻增边界和减边界进行判断;若为好点,则将该码点作为第一好点并记录第一好点的位置信息;

根据第一好点的位置信息在设定区域范围内选取一码点,采用上述交叉法判断选取的码点是否为好点,若选取的码点为非好点则选取另一码点继续判断,若为好点则将该码点作为第二好点并记录第二好点的位置信息;

以第二好点作为原点,第一好点和第二好点所在直线作为X轴,建立直角坐标系;

以第二好点为起点,分别沿直角坐标系的X轴和Y轴方向寻找好点,每找到一个好点,均以该好点的横纵坐标继续寻找其他好点,直至找不到好点为止,记录找到的所有好点的坐标;

根据所有好点的坐标确定一矩形边界,在矩形边界内两好点之间的空白区域进行补点,将矩形边界内的所有好点记为1,所有补点记为0,得到编码矩阵,对编码矩阵进行解码,得到点阵码的值。

2.根据权利要求1所述的一种点阵码快速识别方法,其特征在于,所述遍历灰度图像的中心点所在行中相邻两像素点的灰度差并与灰度阈值进行比对,得出该行所有增边界和减边界的位置信息的步骤具体为:从灰度图像的中心点所在行的第一个像素点开始,横向依次计算前后两像素点间的灰度差值,若灰度差值为0则继续计算后续相邻两像素点间的灰度差值,若灰度差值不为0,则记录前一像素点所在列VS;

从列VS开始,横向判断前一像素点的灰度值是否大于后一像素点的灰度值,若大于则继续判断后续两像素点的灰度值大小关系,若不大于则记录前一像素点所在列VM;

若列VS与灰度图像的中心点所在行交点所在的像素点的灰度值与列VM与灰度图像的中心点所在行交点所在的像素点的灰度值之差大于预设的灰度阈值,则将列VM作为减边界放入边界存储数组中;

从列VM开始,横向判断前一像素点的灰度值是否小于后一像素点的灰度值,若小于则继续判断后续两像素点的灰度值大小关系,若不小于则记录前一像素点所在列VL;

若列VL与灰度图像的中心点所在行交点所在的像素点的灰度值与列VM与灰度图像的中心点所在行交点所在的像素点的灰度值之差大于预设的灰度阈值,则将列VL作为增边界放入边界存储数组中;

重复上述步骤,直至灰度图像的中心点所在行的所有像素点均完成扫描。

3.根据权利要求2所述的一种点阵码快速识别方法,其特征在于,所述选取一对相邻增边界和减边界的位置信息确定该相邻增边界和减边界对应的码点的尺寸信息,根据码点的尺寸信息剔除非好点的步骤具体为:从边界存储数组提取一对增边界和减边界的值并做差,得到对应码点的宽度信息;

设置宽度阈值,若对应码点的宽度信息大于宽度阈值,则判断该码点为非好点;

从边界存储数组剔除非好点的码点的增边界和减边界信息。

4.根据权利要求3所述的一种点阵码快速识别方法,其特征在于,所述采用交叉法判断该码点是否为好点的步骤具体为:通过边界存储数组中保留的增边界和减边界信息,确定保留的所有码点的中心位置信息;

根据保留的码点的中心位置信息,在三条交叉直线的方向上根据该码点的宽度信息进行延长,获得三组判断码点对的位置信息;

依次根据每组判断码点对的位置信息计算每组判断码点对之间包含的增边界和减边界数量;

若任一组判断码点对之间的边界数量小于预设的边界数量阈值,则判断该保留的码点为非好点,重新判断下一保留的码点;

若所有判断码点对之间的边界数量均不小于预设的边界数量阈值,则将该保留的码点做为第一好点,并记录第一好点的中心位置信息。

5.根据权利要求4所述的一种点阵码快速识别方法,其特征在于:在所述根据第一好点的位置信息在给定范围内选取一码点步骤中,所述给定范围为以第一好点的中心位置为圆心的锐角扇形的圆弧上。

6.根据权利要求1所述的一种点阵码快速识别方法,其特征在于,所述在矩形边界内两好点之间的空白区域进行补点的步骤具体为:根据所有好点的坐标估算相邻两码点之间的距离信息;

获取相邻两好点的坐标信息并计算相邻两好点之间的距离信息;

根据相邻两码点之间的距离信息以及相邻两好点之间的距离信息确定相邻两好点之间要补点的数量;

根据要补点的数量在两好点之间的空白区域进行补点。

7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述的点阵码快速识别方法。

8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6任一项所述的点阵码快速识别方法。

说明书 :

一种点阵码快速识读方法、设备和存储介质

技术领域

[0001] 本发明涉及一种点阵码快速识读方法、设备和存储介质,属于符号编码和图像处理技术领域。

背景技术

[0002] 目前的大部分二维码为了提高识读的便利和快捷,设置了对应的寻像定位图形,以便识读设备能够快速对二维码进行定位。而在一些点阵码中,如dotcode,并没有寻像定位图形,因此无法利用寻像定位的方法去识读这些点阵码。
[0003] 在没有明显定位符的情况下,通常按照以下两种方法去完成译码:第一种方法是整体到局部的方法,即首先在全图范围内对点完成边缘检测,尽可能找出所有的点,然后在找出的所有点中找到符合要求的单个码,对单个码按照规则去译码;第二种方法是从局部到整体的方法,即从给定图像的指定位置开始搜寻第一个满足要求的点,并将该点作为起点,确定对应的搜索方向,按照确定的方向进行搜寻,直到能够满足一个码并完成译码为止。
[0004] 现有技术如“CN106096488A”的发明专利公开了一种点阵码的识别方法,通过采用比二维码更为简化的点阵码形式,将点阵码中的基础码区分为定位码区和数据码区,在读取的过程中,只需先将点阵码中的码点分类,然后确定数据码区的中心点,然后根据数据码区中的码点的数量以及距离数据码区的中心点,确定数据码区中码点的编码,最后对数据码区中码点进行编码组合,计算码值;上述现有技术存在的问题是需要从指定的位置开始识读,依靠定位或寻像图形来确定码的位置,识读方法不够灵活方便。
[0005] 现有技术如“CN110276226A”的发明专利公开了一种点阵码检测方法,在对目标图像的灰度图像进行预设二值化处理时,由于预设二值化处理表征根据所述灰度图像采用全局迭代阈值二值化处理和/或采用自适应局部二值化处理的方式,可以满足不同清晰度的图像处理需求,然后再通过依据应用系统参数确定出来的滑动窗口,以及利用了能量密度进行有效的码区位置的筛选,可以在确定有效点阵码区域过程中排除客观因素的干扰,提高解码正确率。上述现有技术存在的问题是在对点进行判断时,对图像进行二值化处理后再进行点阵区域的判断,较容易出现误判,从而导致识读准确率下降。

发明内容

[0006] 为了解决上述现有技术中存在的问题,本发明提出了一种点阵码快速识别方法,利用好点法来进行0、1编码矩阵的估算,从图像的任意一点都可开始进行好点的搜寻形成对应的编码矩阵,而无需定位点的辅助,识读方法方便,灵活性高。
[0007] 本发明的技术方案如下:
[0008] 一种点阵码快速识别方法,包括以下步骤:
[0009] 获取包含点阵码的待识别图像,并获取待识别图像的尺寸信息;
[0010] 将待识别图像转化为单通道的灰度图像;
[0011] 根据待识别图像的尺寸信息计算并确定灰度图像的中心点;
[0012] 预设一灰度阈值,遍历灰度图像的中心点所在行中相邻两像素点的灰度差并与灰度阈值进行比对,得出该行所有增边界和减边界的位置信息;
[0013] 选取一对相邻增边界和减边界的位置信息确定该相邻增边界和减边界对应的码点的尺寸信息,根据码点的尺寸信息剔除非好点,并采用交叉法判断该码点是否为好点;若为非好点,则选取另一对相邻增边界和减边界进行判断;若为好点,则将该码点作为第一好点并记录第一好点的位置信息;
[0014] 根据第一好点的位置信息在设定区域范围内选取一码点,采用上述交叉法判断选取的码点是否为好点,若选取的码点为非好点则选取另一码点继续判断,若为好点则将该码点作为第二好点并记录第二好点的位置信息;
[0015] 以第二好点作为原点,第一好点和第二好点所在直线作为X轴,建立直角坐标系;
[0016] 以第二好点为起点,分别沿直角坐标系的X轴和Y轴方向寻找好点,每找到一个好点,均以该好点的横纵坐标继续寻找其他好点,直至找不到好点为止,记录找到的所有好点的坐标;
[0017] 根据所有好点的坐标确定一矩形边界,在矩形边界内两好点之间的空白区域进行补点,将矩形边界内的所有好点记为1,所有补点记为0,得到编码矩阵,对编码矩阵进行解码,得到点阵码的值。
[0018] 作为优选实施方式,所述遍历灰度图像的中心点所在行中相邻两像素点的灰度差并与灰度阈值进行比对,得出该行所有增边界和减边界的位置信息的步骤具体为:
[0019] 从灰度图像的中心点所在行的第一个像素点开始,横向依次计算前后两像素点间的灰度差值,若灰度差值为0则继续计算后续相邻两像素点间的灰度差值,若灰度差值不为0,则记录前一像素点所在列VS;
[0020] 从列VS开始,横向判断前一像素点的灰度值是否大于后一像素点的灰度值,若大于则继续判断后续两像素点的灰度值大小关系,若不大于则记录前一像素点所在列VM;
[0021] 若列VS与灰度图像的中心点所在行交点所在的像素点的灰度值与列VM与灰度图像的中心点所在行交点所在的像素点的灰度值之差大于预设的灰度阈值,则将列VM作为减边界放入边界存储数组中;
[0022] 从列VM开始,横向判断前一像素点的灰度值是否小于后一像素点的灰度值,若小于则继续判断后续两像素点的灰度值大小关系,若不小于则记录前一像素点所在列VL;
[0023] 若列VL与灰度图像的中心点所在行交点所在的像素点的灰度值与列VM与灰度图像的中心点所在行交点所在的像素点的灰度值之差大于预设的灰度阈值,则将列VL作为增边界放入边界存储数组中;
[0024] 重复上述步骤,直至灰度图像的中心点所在行的所有像素点均完成扫描。
[0025] 作为优选实施方式,所述选取一对相邻增边界和减边界的位置信息确定该相邻增边界和减边界对应的码点的尺寸信息,根据码点的尺寸信息剔除非好点的步骤具体为:
[0026] 从边界存储数组提取一对增边界和减边界的值并做差,得到对应码点的宽度信息;
[0027] 设置宽度阈值,若对应码点的宽度信息大于宽度阈值,则判断该码点为非好点;
[0028] 从边界存储数组剔除非好点的码点的增边界和减边界信息。
[0029] 作为优选实施方式,所述采用交叉法判断该码点是否为好点的步骤具体为:
[0030] 通过边界存储数组中保留的增边界和减边界信息,确定保留的所有码点的中心位置信息;
[0031] 根据保留的码点的中心位置信息,在三条交叉直线的方向上根据该码点的宽度信息进行延长,获得三组判断码点对的位置信息;
[0032] 依次根据每组判断码点对的位置信息计算每组判断码点对之间包含的增边界和减边界数量;
[0033] 若任一组判断码点对之间的边界数量小于预设的边界数量阈值,则判断该保留的码点为非好点,重新判断下一保留的码点;
[0034] 若所有判断码点对之间的边界数量均不小于预设的边界数量阈值,则将该保留的码点做为第一好点,并记录第一好点的中心位置信息。
[0035] 作为优选实施方式,在所述根据第一好点的位置信息在给定范围内选取一码点步骤中,所述给定范围为以第一好点的中心位置为圆心的锐角扇形的圆弧上。
[0036] 作为优选实施方式,所述在矩形边界内两好点之间的空白区域进行补点的步骤具体为:
[0037] 根据所有好点的坐标估算相邻两码点之间的距离信息;
[0038] 获取相邻两好点的坐标信息并计算相邻两好点之间的距离信息;
[0039] 根据相邻两码点之间的距离信息以及相邻两好点之间的距离信息确定相邻两好点之间要补点的数量;
[0040] 根据要补点的数量在两好点之间的空白区域进行补点。
[0041] 另一方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如本发明任一实施例所述的点阵码快速识别方法。
[0042] 再一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本发明任一实施例所述的点阵码快速识别方法。
[0043] 本发明具有如下有益效果:
[0044] 1、本发明一种点阵码快速识别方法,利用好点法来进行0、1编码矩阵的估算,从图像的任意一点都可开始进行好点的搜寻形成对应的编码矩阵,而无需定位点的辅助,识读方法方便,灵活性高。
[0045] 2、本发明一种点阵码快速识别方法,采用交叉法来判断一个点是否为好点,该方法能够从多个方向进行边界的计算和确认,可极大的提高好点判断的准确性,减小误判的概率。

附图说明

[0046] 图1为本发明实施例的流程图;
[0047] 图2为本发明实施例中待识别图像的示例图;
[0048] 图3为本发明实施例中举例的一行像素点的灰度值曲线示例图;
[0049] 图4为本发明实施例中举例的另一行像素点的灰度值曲线示例图;
[0050] 图5为本发明实施例中通过交叉法判断好点的示意图;
[0051] 图6为本发明实施例中建立的直角坐标系的示意图;
[0052] 图7为本发明实施例中寻找到的所有好点的示例图。

具体实施方式

[0053] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0054] 应当理解,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
[0055] 应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
[0056] 术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0057] 术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0058] 实施例一:
[0059] 参见图1,一种点阵码快速识别方法,包括以下步骤:
[0060] 步骤S1:获取待识别图像P1(参见图2),并获取待识别图像的尺寸信息,包括图像P1的宽度像素数PX1和高度像素数量PY1,图像P1中包含了待识读的点阵码A。
[0061] 步骤S2:将待识别图像P1转化为单通道的灰度图像P2;若输入的待识别图像P1为多通道彩色图像,则将其转化为单通道灰度图像P2;若待识别图像P1本身为单通道图像,则令灰度图像P2为待识别图像P1,具体如下:
[0062]
[0063] 步骤S3:根据待识别图像的尺寸信息计算并确定灰度图像的中心点坐标(L1,C1),其中L1=PY1/2,C1=PX1/2。
[0064] 步骤S4:预设一灰度阈值T,遍历灰度图像P2的中心点所在行L1中相邻两像素点的灰度差并与灰度阈值T进行比对,用后一像素点的灰度值减前一像素点的灰度值,得出的灰度差绝对值若大于阈值则为增将前一像素点所在位置记为增边界,若得出的灰度差绝对值小于阈值则为增将前一像素点所在位置记为减边界;获取该行所有增边界和减边界的位置信息,放入边界存储数组EDGES中。
[0065] 步骤S5:从边界存储数组EDGES中选取一对相邻增边界和减边界的位置信息,即从边界存储数组EDGES中取出第N个边界的值和第N+1个边界的值(N=1,3,5,……),确定该相邻增边界和减边界对应的码点的尺寸信息,根据码点的尺寸信息剔除非好点,并采用交叉法判断该码点是否为好点,若为非好点则选取另一对相邻增边界和减边界进行判断,若为好点则将该码点作为第一好点并记录第一好点的中心坐标(LC,CC)。上述好点指的是图像中的黑码点,增减边界成对出现的点。因为在图像处理中受环境或背景的影响,有些码点变模糊,存在误判的可能,所以采用交叉法进行好点的确定,提高准确率。
[0066] 步骤S6:以第一好点的中心坐标(LC,CC)为中心,在设定区域范围内通过计算机根据预设的规则选取一码点,采用上述交叉法判断选取的码点是否为好点,若选取的码点为非好点则选取另一码点继续判断,若为好点则将该码点作为第二好点并记录第二好点的中心坐标(LS,CS);
[0067] 步骤S7:以第一好点的中心坐标(LC,CC)和第二好点的中心坐标(LS,CS)所在的直线作为X轴,过第二好点的中心坐标(LS,CS)作X轴的垂直线,记为Y轴,形成平面直角坐标系XOY。
[0068] 步骤S8:以第二好点(LS,CS)为起点,分别沿直角坐标系的X轴和Y轴方向寻找好点,每找到一个好点,均以该好点的横纵坐标继续寻找其他好点,直至找不到好点为止,记录找到的所有好点的坐标。
[0069] 步骤S9:根据所有好点的坐标确定一矩形RECT的四个边界TL、TR、BL、BR。
[0070] 步骤S10:从矩形RECT的边界TL开始,对两好点之间的空白区域进行补点。
[0071] 步骤S11:将矩形边界内的所有好点记为1,所有补点记为0,得到0、1的编码矩阵。
[0072] 步骤S12:按照解码规则对0、1的编码矩阵进行解码,得到点阵码A的值。
[0073] 作为本实施例的优选实施方式,所述步骤S4具体为:
[0074] 步骤S401:从灰度图像的中心点所在行L1的第一个像素点开始,横向依次计算前后两像素点间的灰度差值,若灰度差值为0则继续计算后续相邻两像素点间的灰度差值,若灰度差值不为0,则记录前一像素点所在列VS;
[0075] 步骤S402:从列VS开始,判断前一像素点的灰度值是否大于后一像素点的灰度值,若大于则继续判断后续两像素点的灰度值大小关系,若不大于则记录前一像素点所在列VM;
[0076] 步骤S403:若像素点(L1,VS)的灰度值与像素点(L1,VM)的灰度值之差大于预设的灰度阈值T,则将列VM作为减边界EDGE1放入边界存储数组EDGES中;
[0077] 步骤S404:从列VM开始,判断前一像素点的灰度值是否小于后一像素点的灰度值,若小于则继续判断后续两像素点的灰度值大小关系,若不小于则记录前一像素点所在列VL;
[0078] 步骤S405:若像素点(L1,VL)的灰度值与像素点(L1,VM)的灰度值之差大于预设的灰度阈值T,则将列VL作为增边界EDGE2放入边界存储数组EDGES中;
[0079] 步骤S406:设置VS=VL,循环上述步骤S402~S405,直至L1行的所有像素点均完成扫描。
[0080] 作为本实施例的优选实施方式,在步骤S5中,包括以下步骤:
[0081] 步骤S501:从边界存储数组EDGES中提取一对增边界和减边界的值并做差,得到值NW,将NW作为对应码点的初始宽度:
[0082] NW=EDGES[N+1]‑EDGES[N]‑1;
[0083] 设置宽度阈值TH,若对应码点的初始宽度NW大于宽度阈值TH,则判断该码点为非好点,直接计算下一对增和减边界的差值;若满足则继续下一步;
[0084] 步骤S502:计算满足条件的码点的中心坐标(LC,CC):
[0085] LC=L1;
[0086] CC=(EDGES[N+1]+EDGES[N])/2;
[0087] 步骤S503:根据该码点的中心坐标(LC,CC)为中心,在竖直方向上向上取NW个长度,得到新的码点(LC‑NW,CC),在竖直方向上往下取NW个长度,得到新的码点(LC+NW,CC);
[0088] 步骤S504:从码点(LC‑NW,CC)到码点(LC+NW,CC)进行如步骤S4中的增边界和减边界计算,得到边界数组EDGES2,若边界数组EDGES2中的边界数量小于设定的阈值2(因为边界数组中存储了增边界和减边界,他们是成对出现的,所以边界数量大于2的时候才有可能是一个好的点,因此将阈值设为2),则判断码点(LC,CC)为非好点,重新计算下一个码点;若边界数组EDGES2中的边界数量大于得于2,则修正中心坐标(LC,CC)值并进行下一步,修正LC为:
[0089] LC’=(EDGES2[0]+EDGES2[1])/2;
[0090] 步骤S505:以修正后的坐标(LC’,CC)为中心,往右上方45度取 个长度,得到新的码点(LC’‑NW,CC+NW);往左下方45度取 个长度,得到新的码点(LC’+NW,CC‑NW);
[0091] 步骤S506:从码点(LC’‑NW,CC+NW)到码点(LC’+NW,CC‑NW)进行如步骤S4中的增边界和减边界计算,得到边界数组EDGES3,若边界数组EDGES3中的边界数量小于2则判断该码点(LC’,CC)为非好点,重新计算下一个码点;若边界数组EDGES3中的边界数量大于得于2,则继续步骤S507;
[0092] 步骤S507:以修正后的坐标(LC’,CC)为中心,往左上方45度取 个长度,得到新的码点(LC’‑NW,CC‑NW);往右下方45度取 个长度,得到新的码点(LC’+NW,CC+NW);
[0093] 步骤S508:从码点(LC’‑NW,CC‑NW)到码点(LC’+NW,CC+NW)进行如步骤S4中的增边界和减边界计算,得到边界数组EDGES4,若边界数组EDGES4中的边界数量小于2则判断该码点(LC’,CC)为非好点,重新计算下一个码点;若边界数组EDGES4中的边界数量大于得于2,则判断该码点(LC’,CC)为第一好点。
[0094] 作为本实施例的优选实施方式,步骤S6具体为:
[0095] 以第一好点的中心坐标(LC,CC)为中心,在15°到‑15°的扇形区域中以5°的顺序递减,同时以3*NW为步长选取码点,得到对应码点的坐标(LE,CE);
[0096] 从码点(LC,CC)到码点(LE,CE)以步骤S4中的方法计算增边界和减边界,并采用步骤S5的方法判断选取的码点是否为好点,若选取的码点为非好点则选取另一码点继续判断,若为好点则将该码点作为第二好点并记录第二好点的中心坐标(LS,CS)。
[0097] 作为本实施例的优选实施方式,步骤S10具体为:
[0098] 根据所有好点的坐标估算相邻两码点之间的距离信息STEP;本实施例中估算的方法为根据码的排布特征,对所有好点计算两两之间的距离,取最小值即为两码点之间的距离信息STEP估算值,因为在一个码中,好点很大概率是存在相邻情况的,所以相邻的时候距离值最小,此时也为码点距离;
[0099] 获取相邻两好点的坐标信息并计算相邻两好点之间的距离信息distance(PT1,PT2),其中PT1,PT2为同一行中相邻的两个好点;
[0100] 根据相邻两码点之间的距离信息distance(PT1,PT2)以及相邻两好点之间的距离信息STEP确定相邻两好点之间要补点的数量n,具体:
[0101] n=distance(PT1,PT2)/STEP;
[0102] 根据要补点的数量n在两相邻好点之间的空白区域进行补点。
[0103] 为帮助本领域技术人员更加充分的理解本实施例提出的点阵码快速识别方法的技术方案,本发明提供以下实例:
[0104] S1:输入包含点阵码的待识读图像P1,如图2所示,宽度像素数为120,高度像素数65;
[0105] S2:输入的待识读图像P1为三通道图像(因色彩原因无法体现),将其转化为灰度图像P2;
[0106] S3:计算灰度图像P2的中心点坐标:
[0107] L1=65/2=32
[0108] C1=120/2=60
[0109] S4:给定灰度阈值T为10,从第32行开始扫描,得到该行所有码点的灰度值曲线如图3所示,从图中可看出相邻两码点间的灰度值之差没有大于阈值10的,所以该行没有相应好点。则扫描第33行,得到该行所有码点的灰度值曲线如图4所示。从图中可看出有满足条件的好点,计算得到边界存储数组EDGES={20,24,30,34,40,44,50,54,80,84,100,104,110,114};
[0110] S5:从边界存储数组EDGES中取出第1个值20和第2个值24,取宽度阈值TH为20(根据周围亮度的判断的经验值),采用交叉法判断该码点是否为好点,判断方法示意如图5所示;具体步骤为:
[0111] (1)计算该码点的初始宽度NW=24‑20‑1=3,小于宽度阈值20,则该码点有可能为好点,继续下一步;
[0112] (2)计算该码点的中心点坐标:
[0113] LC=33;
[0114] CC=(20+24)/2=22;
[0115] (3)以码点(33,22)为中心,往上取3个点位(NW值),得到码点(30,22),往下取3个点位,得到码点(36,22);
[0116] (4)从码点(30,22)到码点(36,22)计算增边界和减边界,得到边界EDGES2={32,36},大于等于2,修正中心坐标:
[0117] LC=(32+36)/2=34;
[0118] CC=22;
[0119] (5)以码点(34,22)为中心,往右上方45度取码点得到(31,25),往左下方45度取码点得到(37,19);
[0120] (6)从码点(31,25)到码点(37,19)计算增边界和减边界,得到两个边界{32,23}和{36,21},大于得于2,继续下一步;
[0121] (7)以码点(34,22)为中心,往左上方45度取码点得到(31,19),往右下方45度取码点得到(37,25);
[0122] (8)从码点(31,19)到码点(37,25)计算增边界和减边界,得到两个边界{32,20}和{36,24},大于得于2,则判断码点(34,22)为第一好点。
[0123] S6:从码点(34,22)开始,寻找第二好点,得到其坐标为(34,32);
[0124] S7:以码点(34,22)和码点(34,32)连线为X轴,过码点(34,32)作Y轴,得到坐标系XOY,如图6所示;
[0125] S8:以点(34,32)为起点,寻找所有的好点,如图7所示;
[0126] S9:形成矩形RECT,得到四个角的坐标分别为(7,6),(7,114),(61,6),(61,114);
[0127] S10:估算两码点之间的距离STEP=7.8;
[0128] S11:对同一行中的两个好点计算距离,并根据STEP值计算应补的点,完成所有直线的补点;
[0129] S12:把好点记为1,补的点记为0,形成0、1编码矩阵;
[0130] S13:对0、1编码矩阵进行译码,得到点阵码的码值。
[0131] 实施例二:
[0132] 本实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如本发明任一实施例所述的点阵码快速识别方法。
[0133] 实施例三:
[0134] 本实施例提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本发明任一实施例所述的点阵码快速识别方法。
[0135] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。