曲线识别方法及装置与流程

文档序号:12367112阅读:624来源:国知局
曲线识别方法及装置与流程

本发明涉及图像识别技术领域,尤其涉及一种曲线识别方法及装置。



背景技术:

传统的曲线识别方式就是从一个点开始,不断加入周围一定距离的连续点,最终形成一条曲线。这种方法速度很快,但其缺陷是如果距离设得小,曲线遇到断点很容易识别中断,而如果距离设得大,识别时可能识别到旁边的临近曲线。

目前的曲线识别中识别断点的方式主要是通过判断方向来实现(即遇到曲线中断了,计算断点处的方向,并沿着该方向往前寻找一定距离,如果发现存在点,则仍认为该点属于这条曲线,并继续往前寻找),而判断方向通过斜率k=(y2-y1)/(x2-x1)来判断。也就是说每个点至少要进行一次除法与两次减法计算,速度较慢,而一张图可能包含上万个点,需要判断的次数更可能上十万次,而除法带来的效率影响较大。



技术实现要素:

基于此,有必要提供一种提高识别效率的曲线识别方法及装置。

一种曲线识别方法,包括:

初始像素获取步骤:获取预设数量个连续的像素点,并按序加入到曲线点集合中;第预设数量个像素点为最新加入到所述曲线点集合的最新加入点;

方向区域确定步骤:根据所述最新加入点及所述最新加入点之前的第预设数量减1个像素点,采用减法运算及比较运算的方式确定所述最新加入点的方向区域;

曲线集合更新步骤:获取与所述最新加入点的距离小于或者等于预设距离、位于所述方向区域的预设范围内、未加入所述曲线点集合的相近同向像素点,并将所述相近同向像素点加入所述曲线点集合,更新所述最新加入点;

重复执行步骤:重复执行所述方向区域确定步骤及所述曲线集合更新步骤,直至获取不到所述相近同向像素点。

一种曲线识别装置,包括:

初始像素获取模块,用于获取预设数量个连续的像素点,并按序加入到曲线点集合中;第预设数量个像素点为最新加入到所述曲线点集合的最新加入点;

方向区域确定模块,用于根据所述最新加入点及所述最新加入点之前的第预设数量减1个像素点,采用减法运算及比较运算的方式确定所述最新加入点的方向区域;

曲线集合更新模块,用于获取与所述最新加入点的距离小于或等于预设距离、位于所述方向区域的预设范围内、未加入所述曲线点集合的相近同向像素点,并将所述相近同向像素点加入所述曲线点集合,更新所述最新加入点;

重复调用模块,用于重复调用所述方向区域确定模块及所述曲线集合更新模块,直至获取不到所述相近同向像素点。

上述曲线识别方法及装置,由于采用减法运算及比较运算的方式确定所述最新加入点的方向区域,而不再需要通过采用除法运算的方式计算斜率来确定方向,减少了运算时间,提高了运算效率,据此提高了曲线识别的识别效率。

附图说明

图1为一实施例的曲线识别方法的流程图;

图2为方向区域划分示意图;

图3为另一实施例的曲线识别方法的流程图;

图4为一具体实施例中识别的曲线的示意图;

图5为一实施例的曲线识别装置的结构图。

具体实施方式

为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“或/和”包括一个或多个相关的所列项目的任意的和所有的组合。

如图1所示,为本发明一实施例的曲线识别方法,包括:

S120,初始像素获取步骤:获取预设数量个连续的像素点,并按序加入到曲线点集合中;第预设数量个像素点为最新加入到所述曲线点集合的最新加入点。

预设数量为预先定义的量。曲线点集合为用于存储识别出的曲线上的像素点的集合。最后得到的曲线点集合中的像素点组成的曲线即为最终识别到的曲线。

在本实施例中,像素点加入到曲线点集合的顺序可以通过像素点对应的元素的下标表示,如采用数组的数据结构来存储曲线点集合时,可以通过数组的下标来表示像素点加入到曲线点集合的顺序。最新加入点是最新加入到曲线点集合的像素点,如,可以是下标为最大数值的元素对应的像素点。

S140,方向区域确定步骤:根据所述最新加入点及所述最新加入点之前的第预设数量减1个像素点,采用减法运算及比较运算的方式确定所述最新加入点的方向区域。

确定最新加入点的方向区域时,需要根据两个像素点来确定:最新加入点,及所述最新加入点之前的第预设数量减1个像素点。由于曲线点集合的加入方式是按序加入的,因此,在通过数组的下标来表示像素点加入到曲线点集合的顺序的情况下,最新加入点之前的第预设数量减1个像素点的确定方式可以是,根据最新像素点对应的元素的下标与预设数量来确定。具体地,最新加入点之前的第预设数量减1个像素点的下标为,最新像素点对应的元素的下标减去预设数量再加1。

需要说明的是,在一个实施例中,预设数量可以为大于或等于5的自然数。如此,通过相隔预设数量减1个像素点的两个像素点来确定最新加入点的方向区域,可以避免相隔过近的两个点由于横坐标或纵坐标过于靠近使得确定的方向区域误差较大或者难以确定方向区域。

在本实施例中,如图2所示,方向区域分为8个区域。在二维坐标系中,增加第一和第三象限的角平分线,及第二和第四象限的角平分线,如此,通过两条角平分线及横纵坐标轴可以将二维坐标系分为8个均等的方向区域。具体地,可以从第一象限靠近纵坐标轴的区域开始作为第1方向区域,顺时针依次命名为第2方向区域、第3方向区域、第4方向区域、第5方向区域、第6方向区域、第7方向区域、第8方向区域。

根据所述最新加入点及所述最新加入点之前的第预设数量减1个像素点,采用减法运算及比较运算的方式可以确定所述最新加入点的方向区域。而不再需要通过采用除法运算的方式计算斜率来确定方向,如此,减少运算时间,提高运算效率。

S160,获取与所述最新加入点的距离小于或者等于预设距离、位于所述方向区域的预设范围内、未加入所述曲线点集合的相近同向像素点,并将所述相近同向像素点加入所述曲线点集合,更新所述最新加入点。

获取最新加入点的相近同向像素点,并将相近同向像素点加入到曲线点集合,并更新最新加入点为该加入到曲线点集合的相近同向像素点。预设距离为预先设定的可以认为是同一条曲线的、允许断开的最大距离。预设范围为预先设定的可以认为是同一条曲线的方向区域改变的范围。

在一个具体实施例中,预设距离为3至15;优选为10。如此,避免距离过小识别不出因客观原因导致的实质为一条曲线但断开了的曲线,或者距离过大而导致不是同一条曲线的曲线被识别为同一条曲线。

S180,重复执行步骤:重复执行所述方向区域确定步骤及所述曲线集合更新步骤,直至获取不到所述相近同向像素点。

在曲线点集合中被加入了新的像素点之后,最新加入点被更新为最新加入的像素点,根据最新进入点继续寻找下一个曲线上的点。在本实施例中,通过在最新加入点的基础上,继续确定最新加入点的方向区域,并根据该方向区域获取新的相近同向像素点,并将该新的相近同向像素点加如到曲线点集合中,更新最新像素点,如此,循环重复执行方向区域确定步骤及曲线集合更新步骤,直至获取不到相近同向像素点,说明曲线已断开或结束,即一条曲线的识别结束。在本实施例中,最终识别到的曲线为曲线点集合中的像素点组成的曲线。

上述曲线识别方法,由于采用减法运算及比较运算的方式确定所述最新加入点的方向区域,而不再需要通过采用除法运算的方式计算斜率来确定方向,减少了运算时间,提高了运算效率,据此提高了曲线识别的识别效率。

如图3所述,在其中一个实施例中,步骤S320、S340、S360、S380分别对应上述步骤S120、S140、S160、S180。所述初始像素获取步骤之前,即步骤S320之前,还包括:

S310,图片像素获取步骤:获取待识别曲线所在的图片的像素点,形成图片像素点集合。

所述曲线识别方法,还包括:

S370,图片集合更新步骤:当所述相近同向像素点加入到所述曲线点集合中时,将加入到所述曲线点集合的所述相近同向像素点从所述图片像素点集合中删除。

所述重复执行步骤获取不到所述相近同向像素点之后,还包括:

S390,迭代执行步骤:当所述图片像素点集合中的像素点中存在与所述曲线点集合中的第一个像素点的距离为1且未加入所述曲线点集合的像素点时,继续执行所示初始像素获取步骤、所示方向区域确定步骤、所示曲线集合更新步骤及所述重复执行步骤。

如此,通过在进行曲线识别之前,对曲线所在的图片进行像素点的获取得到图片像素点集合,并在像素点加入到曲线点集合时,将该像素点从图片像素点集合中删除。然后,通过图片像素点集合中是否存在与第一个像素点的距离为1、且未加入所示曲线点集合的像素点的方式,确定是否还需要继续执行所示初始像素获取步骤、所示方向区域确定步骤、所示曲线集合更新步骤及所述重复执行步骤,以继续查找曲线的像素点。这样,可以避免第一个加入到曲线点集合中的像素点不是曲线的起点或终点时而导致的仅能对第一个像素点的一端进行识别。

需要说明的是,在本实施例中,无论按照什么顺序获取预设数量个连续的像素点,最终必然需要按序加入到曲线点集合中。因此,必然存在第一个像素点。具体地,在通过数组的下标来表示像素点加入到曲线点集合的顺序的情况下,第一个像素点为曲线点集合中下标最小的元素对应的像素点。

举一个简单的例子,如图4所示,曲线点集合依次加入得到{P1,P2,P3,P4,P5,P6,P7};图片像素点集合中的点包括{P8,P9,P10,P11,P12,P13};预设距离假设为3。此时,最新加入点为P7,不存在与P7的距离在3以内的像素点,若在图1的实施例中,曲线的识别将结束,然而,在本实施例中,由于所述图片像素点集合中的像素点存在与所述曲线点集合中的第一个像素点P1的距离为1且未加入所示曲线点集合的像素点P8,因此,需重复初始像素获取步骤、所示方向区域确定步骤、所示曲线集合更新步骤及所述重复执行步骤,依次再将P8,P9,P10,P11,P12,P13加入到曲线点集合中,并从图片像素点集合中删除。

在其中一个实施例中,所述初始像素获取步骤,即步骤S120或S320,包括:

(a)、按照预设搜索方向获取曲线的第一个像素点并将所述第一个像素点加入到曲线点集合中。将所述第一个像素点作为最新加入点。

在本实施例中,按照预先设置的预设搜索方向获取曲线的第一个像素点并将第一个像素点加入到曲线点集合中,因此,该曲线的第一个像素点即为曲线点集合的第一个像素点,也即为第一个加入到曲线点集合的像素点。需要说明的是,第一个像素点,并不一定是曲线的起始像素点或结束像素点。

具体地,预设搜索方向可以为:从上到下,再从左到右。其中,上为二维坐标系中纵坐标所指的方向,下为上的反方向;右为二维坐标系中横坐标所指向的方向,左为右的反方向。

可以理解地,预设搜索方向也可以为从预设指向开始,顺时针或逆时针方向。其中,预设指向可以为二维坐标系中纵坐标所指的方向,或横坐标所指的方向。

(b)、按照预设搜索方向查找与所述最新加入点的距离为1的第一个未加入所述曲线点集合的相邻像素点,将所述相邻像素点加入到所述曲线点集合中,直至所述曲线点集合中的像素点的个数大于或等于所述预设数量。

在本实施例中,最开始获取到的预设数量个的像素点,除了第一个像素点,均为与上一个加入的像素点的距离为1的像素点。如此,获取到预设数量个连续的像素点。

在其中一个实施例中,方向区域确定步骤,即S140或S340,包括:比较所述最新加入点的横坐标与所述最新加入点之前的第预设数量减1个像素点的横坐标的大小,得到横坐标比较结果;比较所述最新加入点的纵坐标与所述最新加入点之前的第预设数量减1个像素点的纵坐标的大小,得到纵坐标比较结果;根据所述最新加入点的横坐标与所述最新加入点之前的第预设数量减1个像素点的横坐标,确定横坐标差距;根据所述最新加入点的纵坐标与所述最新加入点之前的第预设数量减1个像素点的纵坐标,确定纵坐标差距;根据横坐标差距与所述纵坐标差距,比较所述横坐标差距与所述纵坐标差距的大小,得到差距比较结果;所述横坐标比较结果、所述纵坐标比较结果及所述差距比较结果,确定所述最新加入点的方向区域。如此,通过最新加入点的横坐标、纵坐标采用两次减法运算及三次比较运算即可确定最新加入点的方向区域。

在其中一个具体实施例中,假设最新加入点为P5,预设数量为5,最新加入点P5之前的第预设数量减1个像素点为P1。假设最新加入点P5的坐标为(x2,y2);最新加入点之前的第预设数量减1个像素点P1的坐标为(x1,y1)。结合图2所示的方向区域划分方式,采用上述减法运算及比较运算的方式最终确定的方向区域可以是如下所示:

若x1<x2、y1>y2、y1-y2>x2-x1,则最新加入点的方向区域为第1方向区域。

若x1<x2、y1>y2、y1-y2<x2-x1,则最新加入点的方向区域为第2方向区域。

若x1<x2、y1<y2、y2-y1<x2-x1,则最新加入点的方向区域为第3方向区域。

若x1<x2、y1<y2、y2-y1>x2-x1,则最新加入点的方向区域为第4方向区域。

若x1>x2、y1<y2、y2-y1>x2-x1,则最新加入点的方向区域为第5方向区域。

若x1>x2、y1<y2、y2-y1<x2-x1,则最新加入点的方向区域为第6方向区域。

若x1>x2、y1<y2、y1-y2<x1-x2,则最新加入点的方向区域为第7方向区域。

若x1>x2、y1<y2、y1-y2>x1-x2,则最新加入点的方向区域为第8方向区域。

在其中一个实施例中,所述曲线集合更新步骤,即步骤S160或S360,包括:

当前距离初始化子步骤:将当前距离初始化为1。

相近像素获取子步骤:获取与所述最新加入点的距离为所述当前距离且未加入所述曲线点集合的相近像素点。

相近方向确定子步骤:根据所述相近像素点与所述最新加入点之前的第预设数量减2个像素点,确定所述相近像素点的方向区域。

方向区域判断子步骤:判断所述相近像素点是否位于所述方向区域的预设范围内。

肯定判定执行子步骤:若判断所述相近像素点位于所述方向区域的预设范围内,则将所述相近像素点作为相近同向像素点加入所述曲线点集合,更新所述最新加入点。

否定判定执行子步骤:若判断所述相近像素点不位于所述方向区域的预设范围内,则所述当前距离加1,重复所述相近像素获取子步骤、所述相近方向确定子步骤及所述方向区域判断子步骤,以及所述肯定判断执行子步骤或所述否定判断执行子步骤,直至所述当前距离大于所述预设距离,则获取不到所述相近同向像素点。

如此,实现曲线点集合的更新。其中,预设范围可以具体为,相差一个区域。即根据相近像素点是否位于与所述方向区域相差一个区域以内,确定是否将该相近像素点作为相近同向像素点加入所述曲线点集合,更新所述最新加入点。

如图5所示,本发明还提供一种与上述曲线识别方法对应的曲线识别装置,包括:

初始像素获取模块520,用于获取预设数量个连续的像素点,并按序加入到曲线点集合中。第预设数量个像素点为最新加入到所述曲线点集合的最新加入点。

方向区域确定模块540,用于根据所述最新加入点及所述最新加入点之前的第预设数量减1个像素点,采用减法运算及比较运算的方式确定所述最新加入点的方向区域。

曲线集合更新模块560,用于获取与所述最新加入点的距离小于或等于预设距离、位于所述方向区域的预设范围内、未加入所述曲线点集合的相近同向像素点,并将所述相近同向像素点加入所述曲线点集合,更新所述最新加入点。

重复调用模块580,用于重复调用所述方向区域确定模块及所述曲线集合更新模块,直至获取不到所述相近同向像素点。

上述曲线识别装置,由于采用减法运算及比较运算的方式确定所述最新加入点的方向区域,而不再需要通过采用除法运算的方式计算斜率来确定方向,减少了运算时间,提高了运算效率,据此可以提高了曲线识别的识别效率。

在其中一个实施例中,还包括:

图片像素获取模块510,用于获取待识别曲线所在的图片的像素点,形成图片像素点集合。

图片集合更新模块570,用于当所述相近同向像素点加入到所述曲线点集合中时,将加入到所述曲线点集合的所述相近同向像素点从所述图片像素点集合中删除。

迭代执行模块590,用于当所述图片像素点集合中的像素点中存在与所述曲线点集合中的第一个像素点的距离小于或等于所述预设距离、位于所述方向区域的预设范围内、未加入所述曲线点集合的像素点时,将所述第一个像素点作为最新加入点,调用所述重复调用模块。

在其中一个实施例中,所述初始像素获取模块520,包括:

第一像素获取子模块(图未示),用于按照预设搜索方向获取曲线的第一个像素点并将所述第一个像素点加入到曲线点集合中。将所述第一个像素点作为最新加入点。

预设像素获取子模块(图未示),用于按照预设搜索方向查找与所述最新加入点的距离为1的第一个未加入所述曲线点集合的相邻像素点,将所述相邻像素点加入到所述曲线点集合中,直至所述曲线点集合中的像素点的个数大于或等于所述预设数量。

在其中一个实施例中,方向区域确定模块540,包括:

横坐标比较子模块(图未示),用于比较所述最新加入点的横坐标与所述最新加入点之前的第预设数量减1个像素点的横坐标的大小,得到横坐标比较结果。

纵坐标比较子模块(图未示),用于比较所述最新加入点的纵坐标与所述最新加入点之前的第预设数量减1个像素点的纵坐标的大小,得到纵坐标比较结果。

横差距确定子模块(图未示),用于根据所述最新加入点的横坐标与所述最新加入点之前的第预设数量减1个像素点的横坐标,确定横坐标差距。

纵差距确定子模块(图未示),用于根据所述最新加入点的纵坐标与所述最新加入点之前的第预设数量减1个像素点的纵坐标,确定纵坐标差距。

横纵比较子模块(图未示),用于根据横坐标差距与所述纵坐标差距,比较所述横坐标差距与所述纵坐标差距的大小,得到差距比较结果。

区域确定子模块(图未示),用于所述横坐标比较结果、所述纵坐标比较结果及所述差距比较结果,确定所述最新加入点的方向区域。

在其中一个实施例中,所述曲线集合更新模块560,包括:

当前距离初始化子模块(图未示),用于将当前距离初始化为1。

相近像素获取子模块(图未示),用于获取与所述最新加入点的距离为所述当前距离且未加入所述曲线点集合的相近像素点。

相近方向确定子模块(图未示),用于根据所述相近像素点与所述最新加入点之前的第预设数量减2个像素点,确定所述相近像素点的方向区域。

方向区域判断子模块(图未示),用于判断所述相近像素点是否位于所述方向区域的预设范围内。

肯定判定执行子模块(图未示),用于若判断所述相近像素点位于所述方向区域的预设范围内,则将所述相近像素点作为相近同向像素点加入所述曲线点集合,更新所述最新加入点。

否定判定执行子模块(图未示),用于若判断所述相近像素点不位于方向区域的预设范围内,则所述当前距离加1,调用所述相近像素获取子模块、所述相近方向确定子模块及所述方向区域判断子模块,以及所述肯定判断执行子模块或所述否定判断执行子模块,直至所述当前距离大于所述预设距离,则获取不到所述相近同向像素点。

由于上述曲线识别装置与上述曲线识别方法一一对应,因此,对于上述曲线识别装置的具体细节特征,不再作赘述。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出多个变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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