一种基于链码的dm条码的定位方法、服务器、存储介质及系统
技术领域
1.本发明涉及视觉图像处理技术领域,特别是涉及一种基于链码的dm条码的定位方法、服务器、存储介质及系统。
背景技术:2.近年来,随着移动技术的快速发展及工业自动化产业程度的不断深入,由于条码具有信息储存量大、鲁棒性好、成本低等特点,因而被广泛应用在工业加工制造、物流、交通、图书管理、食品药物生产和监管以及移动支付等领域,目前较常用的二维码有datamatrix和quickresponse两种,在进行条码识别时,上位机首先对相机拍摄的图像进行预处理,接着对其边缘进行定位,然后进行二值化处理,最后实现解码,提取出包含的信息。
3.以dm码为例,现有的二维码dm识别技术包括:扫描法、hough变换、角点法定位和其他方法,hough变换查找法的耗时长,对计算机的内存需求大,在复杂背景下的精度低,而角点法则简单快捷,但是仅仅适用于背景干净,条码完整无损的情景下,因而,上述方法在复杂背景下的定位效率和精度较低,甚至出现定位失败的情况,在工业现场中,由相机拍摄到的二维码图片带有复杂的背景以及工业流水线对实时性要求很高。
技术实现要素:4.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于链码的dm条码的定位方法、服务器、存储介质及系统,用于解决现有技术中对于背景较复杂的dm码定位精度低的问题。
5.本发明的实施方式提供了一种基于链码的dm条码的定位方法,包括以下步骤:获取需定位dm条码整幅图像的边缘信息,基于边缘信息提取合适的轮廓,确定出dm条码的边缘图像,确定出所述边缘图像的起始端点,确定各起始端点分别对应的直线段,根据各直线段确定出所述dm条码的l边,根据确定出的l边,对所述dm条码定位。
6.本发明的实施方式提供了一种基于链码的dm条码的定位系统,包括:获取模块,用于获取需定位dm条码整幅图像的边缘信息,基于边缘信息提取合适的轮廓,确定出dm条码的边缘图像;确定模块,用于确定出所述边缘图像的起始端点,确定各起始端点分别对应的直线段;处理模块,用于根据各直线段确定出所述dm条码的l边,根据确定出的l边,对所述dm条码定位。
7.本发明的实施方式提供了一种服务器,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述的基于链码的dm条码的定位方法。
8.本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如上述的基于链码的dm条码的定位方法。
9.本发明实施方式相对于现有技术而言,主要区别及其效果在于:根据先单端点后
环状端点的顺序确定起始端点;根据确定的起始端点,通过计算公式计算出链码跟踪的主方向;根据链码跟踪的主方向对相关的边缘点进行检测;根据检测结果确定链码何时应断裂,并对断裂的链码进行检测,根据检测结果确认输出直线段,可以对背景比较复杂的dm条码进行定位,并且定位的精确度较高。
10.作为进一步改进,确定一个起始端点分别对应的直线段,包括:确认出一起始端点的主方向,根据跟踪路线,追踪相关边缘点;根据跟踪路线、边缘点和主方向,判断链码是否应该断裂;当检测到链码断裂时,则判断断裂链码是否为直线段;在判定为是直线段时,输出该直线段。
11.作为进一步改进,所述获取需定位dm条码整幅图像的边缘信息,基于边缘信息提取合适的轮廓,确定出dm条码的边缘图像之后,所述确定出所述边缘图像的起始端点之前,包括:细化获取的dm条码的边缘图像。
12.作为进一步改进,所述细化获取的dm条码的边缘图像,包括:遍历边缘图像中的所有边缘点,其中,所述边缘图像由若干个边缘点构成,判断所有的边缘点是否为毛刺点,若为毛刺点,则对毛刺点进行消除处理。
13.作为进一步改进,所述判断边缘点是否为毛刺点,包括:根据八邻域内的边缘点个数,和八邻域内的边缘点是四角点或者四邻点,以及八邻域内的边缘点之间的连通关系,判断边缘点是否为毛刺点。
14.上述方案对每个边缘点是否为毛刺点进行判断,根据判断结果对毛刺点进行处理,可以防止在对dm条码进行定位时,链码跟踪起始端点很难清晰定义,并且避免了因为起始端点的选择错误导致链码可能会向非边缘方向跟踪,从而造成链码的断裂。
15.作为进一步改进,所述确认出一起始端点的主方向,包括:根据以下公式确认该起始端点跟踪路线的主方向:其中,根据计算公式计算出以起始端点跟踪路线的主方向。
16.上述方案根据链码主方向计算公式计算出跟踪链码的主方向,主方向随链码变化而不断改化,结合了目标点附近的边缘点信息与当前的链码信息,从而排除了链码跟踪受到起始端点和局部异常点干扰的可能性。
17.作为进一步改进,当所述跟踪路线为八邻域内追踪,所述根据跟踪路线、边缘点和主方向,判断链码是否应该断裂包括:根据以下公式计算待测边缘点的方向与链码主方向的差值:δom(i)=o(i)-om(i);其中,所述os(i)为起始方向;所述o(i)为第(i+2)个边缘点相对于第(i+1)个边缘点的方向码;所述δo(i)为o(i)与起始方向os(i)的差值,取值范围为[-4,4];所述om(i)为主方向,计算时需要考虑当前链码组除前两个点外其他边缘点的影响;所述δom(i)为o(i)与链码主方向om(i)差值,取值范围为[-4,4];若所述δom(i)等于预设值,判定该链码断裂。
[0018]
作为进一步改进,所述追踪相关边缘点之后,以及所述判断链码是否应该断裂之前,还包括:当追踪到的边缘点的数量超过预设值时,选取满足预设条件的边缘点,根据选取的边缘点到链码中直线的距离与第一阈值之间的大小关系;若所述δo(i)、所述δo((-1)和所述δo(i+1)三者的正负号相同,并且累计所述δo(i)、所述δo(o-1)和所述δo(i+1)绝对值之和大于预设值,且所述选取的边缘点到链码中直线的距离大于或等于第一阈值,判定该链码断裂。
[0019]
作为进一步改进,当所述跟踪路线为八邻域外追踪,所述根据跟踪路线、边缘点和主方向,判断链码是否应该断裂包括:判断在所述主方向上是否存在边缘点;若存在,则判定为链码断裂。
[0020]
上述方案在链码进行跟踪时,跟踪方式采用八邻域内跟踪和八邻域外跟踪相结合的方法,并且根据八邻域内和八邻域外的边缘点数量,对于链码主方向相关的边缘进行检测,根据检测结果确定链码是否应断裂,多次的检测确保了直线段提取的准确性。
[0021]
作为进一步改进,所述判断断裂链码是否为直线段,包括:根据相位不超过45度的断裂链码两端边缘点的数量与断裂链码两端边缘点总数量的比值与预设第二阈值之间的大小关系,判定断裂链码是否为直线段。
附图说明
[0022]
图1显示为本发明第一实施方式的基于链码的dm条码的定位方法流程图;
[0023]
图2显示为本发明第二实施方式的基于链码的dm条码的定位方法流程图;
[0024]
图3显示为本发明第三实施方式的基于链码的dm条码的定位方法流程图;
[0025]
图4显示为本发明第四实施方式的基于链码的dm条码的定位系统示意图;
[0026]
图5显示为本发明实施例中电子设备示意图;
[0027]
图6显示为本发明对dm码实l边的定位示意图;
[0028]
图7显示为本发明对dm码虚l边的定位示意图;
[0029]
图8显示为本发明对dm码虚l边的定位示意图;
[0030]
图9显示为本发明中目标点的八邻域内和八邻域外示意图。
具体实施方式
[0031]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0032]
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0033]
本发明的第一实施方式涉及一种基于链码的dm条码的定位方法。
[0034]
本技术的发明人发现,dm条码的图形可以分为两个部分:定位区和数据区,其中定位区由两条实线边组成的l型和与其相对的两条虚线反l型边组成,利用dm条码的这个特性,本技术发明人提出一种基于链码的dm条码的定位方法。
[0035]
流程如图1所示,具体如下:
[0036]
步骤101,获取需定位dm条码整幅图像的边缘信息,基于边缘信息提取合适的轮廓,确定出dm条码的边缘图像。
[0037]
具体的说,一般需要定位的dm条码由相机进行拍照上传,并且在获取需定位的dm
条码后,首先对dm条码进行预处理,比如高斯滤波法、均值滤波法,这样能够降低图像中的噪声;接着使用边缘检测算子进行检测,比如canny算子、sobel算子,从而得到整张图像的边缘图像。然后对提取到的边缘图像进行轮廓识别,分别记录每个轮廓的周长和面积。对满足条件的轮廓,如轮廓的周长》80且面积》400,进行面积排序,取前几个区域作为dm码可能出现的潜在区域。对前几个区域进行链码定位搜索遍历。
[0038]
步骤102,确定出边缘图像的起始端点。
[0039]
具体的说,本实施方式中起始端点分为两种,指单端点与环状端点,单端点指的是八邻域内存在一个边缘点,环状端点指的是八邻域内存在两个边缘点,本实施方式采用先单端点后环状端点的顺序进行链码追踪。
[0040]
步骤103,确定各起始端点分别对应的直线段。
[0041]
具体的说,根据确定的起始端点确认出起始方向,并根据计算公式计算出主方向,按照计算出的主方向进行链码跟踪,对于与主方向相关的边缘点进行检测,根据检测结果判断链码是否应当断裂;如果链码应断开,则对断裂的链码进行再次检测,判断是否提取直线段;如果是提取直线段,则直接输出直线段;针对链码的各起始端点,分别确定出各起始端点对应的直线段。
[0042]
步骤104,根据各直线段确定出dm条码的l边。
[0043]
实际应用中,基于检测到的直线段,寻找两组直线段,这两组直线段必须要满足:1、直线段长度大于20个像素点;2、两组直线段的夹角[85
°
,95
°
]介于之间,记录这两条直线段的端点,此外,为了方便描述,如图6所示,两组直线段命名为l1和l2,则l1和l2即为dm码的实线l边,l1的端点为(p1,p2),l2的端点为(p3,p4),计算出这两条直线段的交点,该交点为b点。
[0044]
步骤105,根据确定出的l边,对dm条码定位。
[0045]
实际应用中,如图7和图8所示,分别计算出l1直线段的两端点p1点、p2点到b点的距离,并从p1和p2中选取距离最长的端点作为a点,并记下ab的距离len(ab),同理,分别计算出l2直线段的两端点p3点、p4点到b点的距离,并从中选取距离最长的端点作为c点,并将bc的距离记为len(bc),计算出|len(bc)-len(ab)|的数值,并使得δ=|len(bc)-len(ab)|,然后以(x
a-τ,y
a-τ)为扫描的起点坐标,沿着平行与bc的方向进行扫描,扫描区域的宽度和高度分别为len(bc)+2τ和|len(bc)-len(ab)|+2τ,在图7中,len(ef)=|len(bc)-len(ab)|+2τ,len(fg)=len(bc)+2τ,在沿着bc方向逐行扫描过程中,对该扫描行上的灰度值进行边缘计算,并记录下每一行的边缘数目,记录下得到的最大边缘数,该扫描行则为该方向上的虚线边,同理,沿着平行于ab方向,以起点坐标(xc+τ,yc+τ),扫描区域的宽度和高度分别为δ+2τ和len(ab)+2τ,在图8中,len(hi)=|len(bc)-len(ab)|+2τ,len(ij)=len(ab)+2τ,在沿着ab方向逐行扫描时,对该扫描行上的灰度值进行边缘计算,记录下每一行的边缘数目,并将最大边缘数所在的列标记为另一条虚线边,然后计算出两条虚线边,该交点即为d,从而确定由两条虚线边组成的反l型边,最终可以实现对dm条码的定位过程。
[0046]
本发明实施方式相对于现有技术而言,主要区别及其效果在于:根据先单端点后环状端点的顺序确定起始端点;根据确定的起始端点,通过计算公式计算出链码跟踪的主方向;根据链码跟踪的主方向对相关的边缘点进行检测;根据检测结果确定链码何时应断裂,并对断裂的链码进行检测;根据检测结果确认输出直线段,可以对背景比较复杂的dm条
码进行定位,并且定位的精确度较高。
[0047]
本发明的第二实施方式涉及一种基于链码的dm条码的定位方法,第二实施方式是对第一实施方式的详细论述,主要详细的论述在于:在第一实施方式中并没有对获取的边缘图像进行细化处理,而在本发明的第二实施方式中,详细的论述对边缘图像细化处理的过程。
[0048]
本实施方式请参阅图2,包括以下步骤,进行如下说明:
[0049]
步骤201与第一实施方式中的步骤101相类似,在此不再赘述。
[0050]
步骤202,遍历边缘图像中的所有边缘点。
[0051]
具体的说,其中,该边缘图像由若干个边缘点构成,遍历是一种查找点的方式,是采用由左至右、由上至下的方式查找处边缘图像内的所有边缘点。
[0052]
步骤203,判断所有的边缘点是否为毛刺点,若为毛刺点,则执行步骤204。
[0053]
具体的说,根据八邻域内的边缘点个数,和八邻域内的边缘点是四角点或者四邻点,以及八邻域内的边缘点之间的连通关系,判断边缘点是否为毛刺点。
[0054]
步骤204,对毛刺点进行消除处理。
[0055]
实际应用中,选择一个待细化处理的边缘点作为目标点,根据目标点八邻域内的边缘点的数量进行判断,判断此目标点是否需要消除;
[0056]
(1)当八邻域内无边缘点,直接对目标点进行消除处理。
[0057]
(2)当八邻域内仅有1个边缘点时,这表明目标点可能为毛刺点也可能为端点;
[0058]
(a)假定八邻域内边缘点为四角点;如图9所示,图9中的
×
点为本实施方式中的目标点,若p1为边缘点,对p1的八邻域进行判断,由于p0,p2为非边缘点,目标点无需判断,即只需对p8-p12这5个点基于以下情况进行判断;
[0059]
若上述5个点中有3个点及以上的点为边缘点,则目标点点必然为毛刺点,进行消除处理。
[0060]
若有2个点为边缘点,则根据目标点与p1点方向形成主方向进行判断,若1点与主方向相同,另外1点与主方向相邻,即2点为p9和p10或p10和p11,则目标点保留;其他情况下目标点进行消除处理;
[0061]
若仅有1个边缘点,则保留当前目标点。
[0062]
(b)假定边缘点为四邻点;假定p0为边缘点,判断其八邻域,由于p1,p2,p6,p7为非边缘点,即需对p8,p9,p23这3点进行分析:
[0063]
若3点为边缘点,则目标点为毛刺点,进行消除处理。
[0064]
若2点为边缘点,则根据目标点与p0点方向形成主方向进行判断,若2点为p8和p23或p8和p9时,目标点保留;其余情况目标点进行消除处理。
[0065]
若仅有1个边缘点,保留当前目标点。
[0066]
(3)当八邻域内存在2个边缘点时,如若这2点不存在连通性,例如2点为p0和p23,保留当前目标点,而若这2点存在连通性时:
[0067]
(a)当2点为p0和p2类似对角关系时,若p0和p2在其八邻域内除目标点外均存在边缘点,则消除目标点;
[0068]
(b)当两点为p0和p1类似四连通关系时,若p0和p1在其八邻域内均有边缘点,除仅有p8或p9或p8和p9为边缘点这3种情况外,可消除当前目标点,其余情况下均保留目标点。
[0069]
(4)当目标点八邻域内存在3个边缘点时,如3点之间存在八连通关系,则消除当前目标点。
[0070]
(5)当八邻域内存在4个边缘点时,如4点均存在四连通关系,则消除当前目标点。
[0071]
(6)当八邻域内存在5个边缘点时,如5点间存在连通关系,则消除当前目标点。
[0072]
步骤205至步骤208与第一实施方式中的步骤102至步骤105相类似,在此不再赘述。
[0073]
从步骤202至步骤204来看,在获取需定位dm条码的边缘图像之后,在确定出该边缘图像的起始端点之前,需要对获取的边缘图像进行细化处理,判断每个边缘点是否为毛刺点,通过对毛刺点的消除,从而使得边缘图像从多像素宽度边缘变为单像素宽缘边缘,从而可以更加准确确定出起始端点,防止链码可能会向非边缘方向跟踪。
[0074]
本发明的第三实施方式涉及一种基于链码的dm条码的定位方法,第三实施方式是对第一实施方式的详细论述,主要详细的论述在于:在第一实施方式中并没有对确定各起始端点分别对应的直线段进行详细的论述,而在本发明的第二实施方式中,详细的确定各起始端点分别对应的直线段的具体过程。
[0075]
本实施方式请参阅图3,包括以下步骤,进行如下说明:
[0076]
步骤301至步骤302与第一实施方式中的步骤101至步骤102和第二实施方式中步骤201和步骤205相类似,在此不再赘述。
[0077]
步骤303,确认出一起始端点的主方向。
[0078]
具体的说,根据以下公式确认该起始端点跟踪路线的主方向:
[0079][0080]
其中,os(i)为起始方向,o(i)为第(i+2)个边缘点相对于第(i+1)个边缘点的方向码,δo(i)为o(i)与起始方向os(i)的差值,取值范围为[-4,4];om(i)为主方向,在计算该值时考虑了当前链码组除前两个点外其他边缘点的影响。根据上述计算公式计算出以起始端点跟踪路线的主方向。
[0081]
步骤304,根据跟踪路线,追踪相关边缘点。
[0082]
具体的说,在进行链码跟踪时,则采用了八邻域内跟踪与八邻域外跟踪相结合的方法。若当前目标点的八邻域存在边缘点,则采用八邻域内跟踪,反之则采用八邻域外跟踪。
[0083]
步骤305,判断链码是否应该断裂,若是链码断裂,则执行306。
[0084]
具体的说,根据跟踪路线、边缘点和主方向,根据以下公式计算待测边缘点的方向与链码主方向的差值δom(i):δom(i)=o(i)-om(i);;其中,o(i)为第(i+2)个边缘点相对于第(i+1)个边缘点的方向码,δom(i)为o(i)与链码主方向om(i)差值,取值范围为[-4,4];
[0085]
若在八邻域内跟踪,则δom(i)等于预设值,判定该链码断裂;
[0086]
若在八邻域外跟踪,则判断在主方向上是否存在边缘点;若存在,则判定为链码断裂。
[0087]
当追踪到的边缘点的数量超过预设值时,选取满足预设条件的边缘点,根据选取的边缘点到链码中直线的距离与第一阈值之间的大小关系;
[0088]
若o(i-1),o(i),o(i+1)三者的正负号相同,并且三者的绝对值之和大于预设值,且选取的边缘点到链码中直线的距离大于或等于第一阈值,判定该链码断裂。
[0089]
实际应用中,δom(i)的等于预设值中预设值为正负4,当追踪到的边缘点的数量超过预设值时中预设值为3的倍数;
[0090]
(1)在八邻域内跟踪时:(a)若该八邻域内仅有1个边缘点,则基于当前跟踪方向与链码主方向的差值大小判断:若δom(i)=
±
4,则表明链码的方向发生剧烈变形,需要对获取的边缘链码进行相位编组验证;若δom(i)取为其他值时,则需要对链码进行直线化分析;(b)如若边缘点不唯一时,通常将当前目标点标记为边缘交叉点,当前链码的跟踪方向选为最小绝对差值方向码,并对链码进行直线化分析;同时在当前链码跟踪结束后对边缘交叉点进行边缘补偿,即将边缘交叉点单独设为边缘点,以防止链码形成直线后,原有链码内全部边缘点非边缘化,进而导致下一边缘直线的断裂。
[0091]
(2)在八邻域内跟踪时:判断链码是否存在过度离散化问题,即链码中八邻域外连接点数量与当前链码边缘点数量之间的比值是否低于第三阈值:若低于第三阈值,则应进行相位编组验证;若高于第三阈值,则判断八邻域外是否存在边缘点最接近om(i)方向和o
m(i)±
0.5方向上,如若不存在则依旧需要对获取的边缘链码进行相位编组验证,如若存在则直接进行直线化分析。
[0092]
(3)直线化分析:(a)每次均对新加入的第i个点进行检测,即当δom(i-1),δom(i),δom(i+1)三者的正负号相同,并且累计绝对值大于3以上时,这表明当前链码发生明显偏转,必将改变拟合直线方向,因此链码立即断裂,需要对其进行相位编组验证;(b)链码点与拟合直线距离检测。当加入边缘点数量n为3的倍数时,对直线进行最小二乘法拟合,对链码中的点进行抽样计算其到直线的垂直距离,若该距离超过垂直距离第一阈值,链码立即断裂,需要再次进行相位编组验证。
[0093]
步骤306,判断断裂链码是否为直线段,若判定是直线段时,则执行步骤307。
[0094]
具体的说,根据相位不超过45度的断裂链码两端边缘点的数量与断裂链码两端边缘点总数量的比值与预设第二阈值之间的大小关系,判定断裂链码是否为直线段。
[0095]
实际应用中,通过最小二乘方法求取直线方向,接着对边缘点进行相位验证,首先统计链码中边缘点相位符合直线方向的数量(相位与直线方向之间差异不超过45度),其次将该数量与链码组边缘点总数量进行对比,判断比值是否低于第二阈值:
[0096]
(a)若低于第二阈值,判断直线长度是否达到第四阈值:若满足要求则直接输出直线,接着以当前链码终点为端点,再次进行链码追踪;不满足要求则按照链码跟踪顺序,将第3点边缘点视为端点,再次进行链码追踪。
[0097]
(b)若当前链码高于第二阈值并且链码中存在交叉点,则按照链码跟踪顺序,删除前两个边缘点,链码中其余点恢复为边缘点,进行新的链码直线提取过程,防止影响交叉点处其他直线的提取。
[0098]
(c)若当前链码高于第二阈值且不存交叉点,如若该情况是由八邻域追踪和链码直线化所引起的断裂,则按照链码跟踪顺序,删除前两个边缘点,并按照原来的链码顺序从其余点里取前两点确定起始方向os,并依次更新后续点的主方向om,进行链码追踪;如当前链码是由八邻域外追踪产生,则应开启新的链码直线提取过程。
[0099]
步骤307,输出该直线段。
[0100]
步骤308至步骤309与第一实施方式中的步骤104至步骤105和第二实施方式中步骤207至步骤208相类似,在此不再赘述。
[0101]
从步骤303至步骤307来看,在确定各起始端点分别对应的直线段时,需要进行判断链码是否断裂,在判断链码是否断裂时又需要好几种检测方法进行来回检测链码是否断裂,断裂的链码又需要进行检测来判断是否可以提取直线段,根据来来回回几次的检测可以精确的提取直线段,保证了定位的准确性。
[0102]
本发明的第四实施方式涉及一种基于链码的dm条码的定位系统,请参阅图4,包括:
[0103]
获取模块,用于获取需定位dm条码整幅图像的边缘信息,基于边缘信息提取合适的轮廓,确定出dm条码的边缘图像;
[0104]
确定模块,用于确定出所述边缘图像的起始端点,确定各起始端点分别对应的直线段;
[0105]
处理模块,用于根据各直线段确定出所述dm条码的l边,根据确定出的l边,对所述dm条码定位。
[0106]
不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
[0107]
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
[0108]
本发明第五实施方式涉及一种服务器,请参阅图5,包括:
[0109]
至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上的基于链码的dm条码的定位方法。
[0110]
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
[0111]
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
[0112]
本发明第六实施方式涉及一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例。
[0113]
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使
得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0114]
综上,本发明根据先单端点后环状端点的顺序确定起始端点,根据确定的起始端点,通过计算公式计算出链码跟踪的主方向,根据链码跟踪的主方向对相关的边缘点进行检测,根据检测结果确定链码断裂,在对断裂的链码进行检测,根据检测结果确认输出直线段,可以对背景比较复杂的dm码进行定位,并且定位的精确度较高。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0115]
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。