一种针对图像中水平垂直线段的识别方法与流程

文档序号:15888617发布日期:2018-11-09 19:52阅读:2337来源:国知局
一种针对图像中水平垂直线段的识别方法与流程

本发明涉及图像识别领域,具体涉及一种针对图像中水平垂直线段的识别方法。

背景技术

在图像识别领域,针对直线的检测,通常使用hough(霍夫)算法。

hough算法及其改进算法的基本思想是利用共线点的对偶性来做检测,是坐标域变换的代表。它认为图像空间中共线的点在参数空间里对应着相交的线,并且,在参数空间里,相交在同一点的直线,其在图像空间里,都有共线的点相对应。

hough检测直线的能力包括:水平线、垂直线、斜线、间断线等。但由于hough算法的特点,使用时间复杂度和空间复杂度都很高,与之对应的是算法低效和空间占用高,并且在变换过程中丢失了线段的长度信息和具体位置。

虽然hough算法的能力较大,但在检测具体的水平线和垂直线的效果上,不是最优的。本文针对水平线和垂直线的检测提出了一种新的算法。



技术实现要素:

为解决上述问题,本发明提供一种针对图像中水平垂直线段的识别方法。

本发明的技术方案具体为:

一种针对图像中水平垂直线段的识别方法:具体过程如下:指定图像中的识别区,根据所需识别的线段宽度设置滑动识别窗口,在识别水平线段时,滑动识别窗口的高度与线段的宽度相同;而在识别垂直线段时,滑动识别窗口的宽度与线段的高度相同;将滑动识别窗口放在图像中的识别区中滑动以遍历每条垂直线或水平线,对于识别垂直线时滑动识别窗口在图像中的识别区中从左至右滑动;而对于识别水平线时滑动识别窗口在图像中的识别区中从上至下滑动,在滑动识别窗口中判别是否存在符合指定条件的线段。

进一步的:所述的指定条件包括颜色数组、颜色误差、线段宽度、线段最小长度。

如权利要求1所述的一种针对图像中水平垂直线段的识别方法,其特征在于:识别过程中采用递归嵌套的方式在图像中寻找,分别分为三个层次:图像内遍历、滑动识别窗口内遍历、线条内遍历。

进一步的:所述的图像内遍历过程是将滑动识别窗口放在图像中的识别区中滑动来遍历每条垂直线或水平线。

进一步的:所述的滑动识别窗口内遍历过程是在滑动识别窗口内,识别水平线时从左至右或识别垂直线时从上至下,依次在窗口内的每条线段内,查找符合颜色条件和最小长度条件的线段区间的集合,线段区间定义为在该区间内的每条线段都符合颜色条件和最小长度条件并且识别垂直线时该区间宽度和滑动识别窗口宽度相同、识别水平线时该区间高度和滑动识别窗口高度相同。

进一步的:所述的线条内遍历过程是针对滑动识别窗口内的每一条线条,识别水平线时从左至右或识别垂直线时从上至下依次寻找符合颜色要求的每个线段,然后再对每个线段做长度判断,只保留满足最小长度的那些线段。

进一步的:所述的滑动识别窗口每次滑动的距离是图像中的一个线条,一个线条就是一个像素的宽度。

相对于现有技术,本发明的技术效果为:

1)由于不存在形态学变换,所以识别的速率提升较大;

2)由于对输入条件做了较为严格的判断,所以准确率较高;

3)能够识别出“不同颜色混排”的线段。

附图说明

图1是本发明的识别样例图。

图2为识别图1时的参数表。

图3为本发明算法流程示意图。

图4为垂直线段拆解示意图。

图5为水平线段拆解示意图。

图6为垂直线识别时滑动识别窗口滑动示意图。

图7为水平线识别时滑动识别窗口滑动示意图。

图8为滑动识别窗口内遍历识别示意图。

图9为线条内遍历识别示意图。

具体实施方式

本算法的基本思路是,以所需识别的线段宽度指定为“线段宽度”来设置滑动识别窗口的尺寸,将滑动识别窗口在图像中的识别区中滑动来遍历每条垂直线或水平线,对于识别垂直线时,滑动识别窗口在图像中的识别区中是从左至右滑动的;而对于识别水平线时,滑动识别窗口在图像中的识别区中是从上至下滑动的。在滑动识别窗口内部,判别是否存在符合指定条件的线段,其中指定条件包括颜色数组、颜色误差、线段宽度、线段最小长度。

在识别过程中,识别算法以递归嵌套的方式在图像中寻找,分别分为三个层次:图像内遍历、滑动识别窗口内遍历、线条内遍历。如图3所示。

1)图像内遍历

首先,将图像理解为一条条的线段。对于水平线段识别,理解为一条条的横线段,而对于垂直线段识别,则理解为一条条的竖线段。如图4-5所示。

其次,设置一个以参数“线段宽度”为大小的矩形框作为“滑动识别窗口”,对于水平线段识别,窗口的“高度”设置为“线段宽度”,而对于垂直线段识别,窗口的“宽度”设置为“线段宽度”。

然后,将滑动识别窗口放在图像的识别区位置,识别水平线时从上至下或识别垂直线时从左至右滑动,如图6-7如示。

每次滑动的距离是图像中的一个线条,即一个像素的宽度。每次在滑动识别窗口内判定和查找是否存在符合要求的线段。判定和查找的方法将在下述“滑动识别窗口内遍历”中说明。

2)滑动识别窗口内遍历

在滑动识别窗口内,识别水平线时从左至右或识别垂直线时从上至下,依次在窗口内的每条线段内,查找符合颜色条件和最小长度条件的线段区间的集合。颜色条件和最小长度条件这两点条件的具体说明及方法将在下述“线条内遍历”中体现。通过“线条内遍历”,得到的结果是:在每条线条上,存在着“0段或多段”满足“颜色范围”并且长度不小于“最小长度”的线段集合。如图8所示。

在图8的例子中,滑动识别窗口的尺寸是3个像素,通过线条内遍历,窗口内的3个线条分别含有2个、2个、1个满足条件的线段,根据这些线段的位置坐标,寻找在一定坐标范围内每条线段都符合颜色条件和最小长度条件的区间坐标,并且识别水平线时该区间高度与滑动识别窗口高度相同、识别垂直线时该区间宽度与滑动识别窗口宽度相同,其中判断水平线时区间横坐标范围为所需线段的最小长度、判断垂直线时区间纵坐标范围为所需线段的最小长度,该坐标范围的区间即为最终找到的一条满足“宽度条件”的线段区间。这条线段区间形成的粗线段就是要寻找的目标线段,读取该区间的坐标信息,并将它在整个图像中的位置信息记录下,将位置信息返回给调用者。

而图8中处于较左位置的2条线段,虽然长度满足要求,但无法形成“连续3个线段”的线段区间要求而最终无法满足要求。

3)线条内遍历

在“线条内遍历”阶段,针对每一条线条,水平线从左至右或垂直线从上至下依次寻找符合颜色要求的每个“线段”。例如针对图5中的第一条线,可能会存在多个符合颜色要求的线段,如图9所示。

在图9中,存在4个符合颜色要求的线段。然后再对每个线段做长度判断,只保留满足“最小长度”的那些判断。在图9中,只有左边的两条线段的长度满足要求,右边的两个线段由于长度较短而被忽略。

在经过了上述三个层次的遍历查找之后,就能够找出是否存在着满足指定要求的线段,以及这些线段的位置。

本方法用于从图像中识别出水平线段和垂直线段,不包括斜线。

对于一幅给定的图像,指定的参数包括:作为识别区的“感兴趣区”、线段颜色数组、颜色误差范围、线段宽度、线段最小长度。通过本方法,能够得到线段的两个端点的坐标即为滑动识别窗口内遍历中的线段区间坐标。下面以图1为例简要描述算法的使用。

在图1中,悬浮着一个“对话框”,若要识别出对话框的位置和大小,可使用本算法。识别对话框其实就是识别出它的上下水平线段和左右垂直线段的位置。

通过分析图像,可以观察出对话框的边界处存在两个特点:1.对话框的四周边界处是同一种颜色,即墨蓝色。2.对话框边界之外的1个像素是纯黑色线条包裹。由此可得到调用本

算法的输入参数,如图2所示。

使用本算法之后,得到四条线段的位置,这四条线段所围成的矩形区域,即是对话框的位置。

以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的技术人员来说,在不脱离本发明整体构思前提下,还可以做出若干改变和改进,这些也应该视为本发明的保护范围。

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