1.一种快速定位dotcode码的方法,其特征在于,包括如下步骤:
s1:由包含dotcode码的原始图像任意点发出扫描线,并记录所述扫描线上的像素点灰度值;
s2:取所述扫描线上n个相邻像素点的灰度值,通过比对灰度值,获取灰度值增减或减增边界;
s3:对成对交替出现的一组相邻的减增或增减边界位置,计算边界中心点及当前方向的边界宽度;
s4:由所述边界中心点位置向多个方向发出扫描线,重复s2-s3步骤,寻找其他过渡边界,并进行多个方向的边界宽度计算,若各个方向的边界宽度相同,则所述边界中心点所在的像素点集合记为第一数据点;若各个方向的边界宽度不相同,则回到步骤s3;
s5:由所述第一数据点出发,进行多个方向上的扫描,按照步骤s2-s4的方法确定多个候选数据点;
s6:计算所述多个候选数据点分别和所述第一数据点的距离,选择距离最短的候选数据点作为第二数据点,所述第一数据点和第二数据点构成的直线记为45°方向,即第一主点轴方向;
s7:寻找所述45°方向直线上的所有数据点,以所述所有数据点分别作为原点,沿着垂直于所述45°方向直线的方向分别寻找同一条直线上的其他数据点,并记录其他数据点的中心点坐标;
s8:判断垂直于所述45°方向直线的每条直线上的各数据点之间的距离关系,若各个相邻数据点之间的最小距离不小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述直线方向是第二主点轴方向。
2.根据权利要求1所述的一种快速定位dotcode码的方法,其特征在于,所述s3步骤中,中心点和宽度的计算公式为:
其中,x,y为中心点的位置坐标,(x0,y0),(x1,y1)分别为两个间隔点的位置坐标,w为宽度。
3.根据权利要求1所述的一种快速定位dotcode码的方法,其特征在于,所述步骤s3中,当dotcode码为白底黑点时,选择减增边界作为目标边界,当dotcode码为黑底白点时,选择增减边界作为目标边界。
4.根据权利要求1所述的一种快速定位dotcode码的方法,其特征在于,所述步骤s4中,当所述边界中心点所在的边界宽度和其他边界宽度不相等时,则所述边界中心点不是所述数据点的中心点,所述数据点的中心点位于,原点为所述边界中心点并且垂直于所述扫描线的直线上,所述直线方向上的边界中心点为所述数据点的中心点。
5.根据权利要求1所述的一种快速定位dotcode码的方法,其特征在于,所述步骤s5中,若垂直于所述45°方向直线的直线上找不到其他数据点,或者该方向上的直线中,相邻数据点之间的最小距离小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述45°方向寻找错误,返回步骤s1,重新计算。
6.一种快速定位dotcode码的系统,其特征在于,包括存储器和处理器,所述存储器存储有指令,所述指令适于由处理器加载并执行以下步骤:
s1:由包含dotcode码的原始图像任意点发出扫描线,并记录所述扫描线上的像素点灰度值;
s2:取所述扫描线上n个相邻像素点的灰度值,通过比对灰度值,获取灰度值增减或减增边界;
s3:对成对交替出现的一组相邻的减增或增减边界位置,计算边界中心点及当前方向的边界宽度;
s4:由所述边界中心点位置向多个方向发出扫描线,重复s2-s3步骤,寻找其他过渡边界,并进行多个方向的边界宽度计算,若各个方向的边界宽度相同,则所述边界中心点所在的像素点集合记为第一数据点;若各个方向的边界宽度不相同,则回到步骤s3;
s5:由所述第一数据点出发,进行多个方向上的扫描,按照步骤s2-s4的方法确定多个候选数据点;
s6:计算所述多个候选数据点分别和所述第一数据点的距离,选择距离最短的候选数据点作为第二数据点,所述第一数据点和第二数据点构成的直线记为45°方向,即第一主点轴方向;
s7:寻找所述45°方向直线上的所有数据点,以所述所有数据点分别作为原点,沿着垂直于所述45°方向直线的方向分别寻找同一条直线上的其他数据点,并记录其他数据点的中心点坐标;
s8:判断垂直于所述45°方向直线的每条直线上的各数据点之间的距离关系,若各个相邻数据点之间的最小距离不小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述直线方向是第二主点轴方向。
7.根据权利要求6所述的一种快速定位dotcode码的系统,其特征在于,所述s3步骤中,中心点和宽度的计算公式为:
其中,x,y为中心点的位置坐标,(x0,y0),(x1,y1)分别为两个间隔点的位置坐标,w为宽度。
8.根据权利要求6所述的一种快速定位dotcode码的系统,其特征在于,所述步骤s3中,当dotcode码为白底黑点时,选择减增边界作为目标边界,当dotcode码为黑底白点时,选择增减边界作为目标边界。
9.根据权利要求6所述的一种快速定位dotcode码的系统,其特征在于,所述步骤s4中,当所述边界中心点所在的边界宽度和其他边界宽度不相等时,则所述边界中心点不是所述数据点的中心点,所述数据点的中心点位于原点为所述边界中心点并且垂直于所述扫描线的直线上,所述直线方向上的边界中心点为所述数据点的中心点。
10.根据权利要求6所述的一种快速定位dotcode码的方法,其特征在于,所述步骤s5中,若垂直于所述45°方向直线的直线上找不到其他数据点,或者该方向上的直线中,相邻数据点之间的最小距离小于所述45°方向直线上的各个相邻数据点之间的最小距离,则所述45°方向寻找错误,返回步骤s1,重新计算。