本发明涉及图像处理,特别是一种像元有向轮廓快速转换为栅格边界轮廓的方法及其应用该方法的系统。
背景技术:
1、随着图像处理技术被广泛应用到各行各业中,图像处理软件成为多个邻域的必备软件。如图1所示,图像处理软件在程序开发上可分为“软件应用层”和“底层算法层”。其中,“软件应用层”主要是满足终端用户的各种交互需求,为用户提供友好的视觉交互,呈现准确的图像处理结果。“底层算法层”主要是实现各种图像处理算法,根据软件传输进来的图像进行处理,将处理结果返回给软件应用层将结果呈现,得到用户想要的结果。
2、在一幅图像上获得目标物连通域的轮廓边界和计算连通域面积是图像处理软件常见的功能,例如,机器视觉缺陷检测软件需要定位到图像中缺陷轮廓位置和计算缺陷面积。一般是在“底层算法层”对图像进行处理后得到目标连通域的轮廓,并计算连通域的面积,再传输结果给软件上显示。
3、从“底层算法层”获得的目标区域的轮廓坐标是以图像像元为单位的坐标系统,而“软件应用层”在显示上,是以栅格图像数据坐标系统。如图6所示,如果是将“底层算法层”获得的像元轮廓坐标直接显示在软件界面上,可以看到明显的轮廓坐标错位,没有对像元进行正确包裹,导致在用这些轮廓点坐标进行区域面积的计算时,所得到的区域面积是偏小的,是不准确的。
4、现有技术解决上述轮廓坐标错位、区域面积偏小的问题时,普遍的解决方案需要扫描线扫描栅格像元,获得栅格像元连通域,从而获得像元连通域的完整栅格边界轮廓,例如用游程编码的方式。但是,采用该解决方案虽然能够获得完整栅格边界轮廓,但却存在运行速度慢和实现复杂的问题。
技术实现思路
1、本发明的主要目的在于提供了一种像元有向轮廓快速转换为栅格边界轮廓的方法和系统,旨在解决现有的像元有向轮廓转换为栅格边界轮廓时运行速度慢和实现复杂的技术问题,从而能够更加快速高效的解决显示问题和连通域面积计算偏小问题。
2、为实现上述目的,本发明提供了一种像元有向轮廓快速转换为栅格边界轮廓的方法,其包括以下步骤:
3、获取像元区域的像元有向轮廓,并提取所述像元有向轮廓的轮廓点集;
4、根据所述轮廓点集的有向性,对像元轮廓点在八邻域的方向走位进行连续追踪,得到当前像元轮廓点到下一个像元轮廓点的方向关系;
5、根据所述方向关系,使用对应的转化规则对当前像元轮廓点进行转化,得到围绕该像元轮廓点的栅格边界点子集;所述转化规则是根据像元轮廓点的八邻域的七个方向与预设的主方向之间的关系设置的;
6、遍历所述像元轮廓点集,得到包裹所述像元区域的栅格边界点集。
7、优选的,所述像元轮廓点具有连续性,所述对像元轮廓点在八邻域的方向走位进行连续追踪,是通过标记每个像元轮廓点的方向,根据该当前像元轮廓点的方向判断下一个像元轮廓点。
8、优选的,所述当前像元轮廓点到下一个像元轮廓点的方向关系,是通过对当前像元轮廓点的八邻域像素点按逆时针方向编上进行编码,分别代表八个方向;根据对当前像元轮廓点到下一个像元轮廓点在八个方向的编码,判断与主方向的关系。
9、优选的,所述转化规则为:
10、若当前像元轮廓点到下一个像元轮廓点的方向与主方向相同或相反或垂直方向,则转化后的栅格边界点的数量和方向与所述像元轮廓点相同;
11、若当前像元轮廓点到下一个像元轮廓点的方向为主方向的左前方或左后方或右前方或右后方,则将当前像元轮廓点和下一个像元轮廓点转化为相同数量和方向的栅格边界点,并且,还包括在二者之间的插入栅格边界点;所述插入栅格边界点的方向对应于所述的左前方或左后方或右前方或右后方。
12、优选的,沿逆时针方向遍历所述像元轮廓点集,所述转化规则具体包括七种:
13、(1)若当前像元轮廓点到下一个像元轮廓点的方向与主方向相同,则栅格边界点沿主方向上前进两次;
14、(2)若当前像元轮廓点到下一个像元轮廓点的方向为主方向的左前方,则栅格边界点依次进行:前进一次、左拐一次、右拐一次;所述前进是沿主方向上前进;所述左拐是在前进一次后的方向上进行左拐;所述右拐是在左拐一次后的方向上进行右拐;
15、(3)若当前像元轮廓点到下一个像元轮廓点的方向为主方向的左方,则栅格边界点沿所述左方前进两次;
16、(4)若当前像元轮廓点到下一个像元轮廓点的方向为主方向的左后方,则栅格边界点依次进行:前进一次、左拐一次、右拐一次;所述前进是沿主方向的左方前进;所述左拐是在前进一次后的方向上进行左拐;所述右拐是在左拐一次后的方向上进行右拐;
17、(5)若当前像元轮廓点到下一个像元轮廓点的方向与主方向相反,则栅格边界点沿主方向的反方向上前进两次;
18、(6)若当前像元轮廓点到下一个像元轮廓点的方向为主方向的右后方,则栅格边界点依次进行:前进一次、左拐一次、右拐一次;所述前进是在主方向的反方向上前进;所述左拐是在前进一次后的方向上进行左拐;所述右拐是在左拐一次后的方向上进行右拐;
19、(7)若当前像元轮廓点到下一个像元轮廓点的方向为主方向的右前方,则栅格边界点依次进行:前进一次、左拐一次、右拐一次;所述前进是在主方向上前进;所述左拐是在前进一次后的方向上进行左拐;所述右拐是在左拐一次后的方向上进行右拐。
20、优选的,所述主方向为向上、向下、向左、向右的任一种;根据所述主方向的不同,设置不同的转化起始位置:
21、若主方向为向上,则设置最右下方的像元轮廓点作为转化起始位置;
22、若主方向为向下,则设置最左上方的像元轮廓点作为转化起始位置;
23、若主方向为向左,则设置最右上方的像元轮廓点作为转化起始位置;
24、若主方向为向右,则设置最左下方的像元轮廓点作为转化起始位置。
25、与所述像元有向轮廓快速转换为栅格边界轮廓的方法相对应的,本发明提供一种像元有向轮廓快速转换为栅格边界轮廓的系统,其包括:
26、像元轮廓提取模块,用于获取像元区域的像元有向轮廓,并提取所述像元有向轮廓的轮廓点集;
27、像元轮廓点分析模块,其根据所述轮廓点集的有向性,对像元轮廓点在八邻域的方向走位进行连续追踪,得到当前像元轮廓点到下一个像元轮廓点的方向关系;
28、栅格边界点转化模块,其根据所述方向关系,使用对应的转化规则对当前像元轮廓点进行转化,得到围绕该像元轮廓点的栅格边界点子集;所述转化规则是根据像元轮廓点的八邻域的七个方向与预设的主方向之间的关系设置的;遍历所述像元轮廓点集,得到包裹所述像元区域的栅格边界点集。
29、本发明的有益效果是:
30、(1)本发明的像元有向轮廓转换为栅格边界轮廓的算法,通过对像元轮廓点在八邻域的方向走位的连续追踪,根据轮廓点集的有向性获取相邻两个像元轮廓点的方向关系,从而根据方向关系进行轮廓转换,能够快速、准确的转换得到栅格边界,从而能够更加快速高效的解决显示问题和连通域面积计算偏小问题;
31、(2)本发明根据像元轮廓点的八邻域的七个方向与预设的主方向之间的关系设置转化规则,根据转化规则直接得到栅格边界点集,实现了从像元轮廓坐标直接求得栅格边界轮廓坐标数据的快速转化,算法效率更高;
32、(3)本发明通过对像元轮廓点的方向关系进行编码,通过编码化处理实现快速轮廓转换计算;
33、(4)本发明的轮廓转化算法,并非直接点对点转化,还包括在当前像元轮廓点和下一个像元轮廓点之间的插入栅格边界点;通过该插入栅格边界点使得像元区域得到更好的包裹,转换后的栅格边界更贴近实际轮廓;
34、(5)本发明只依赖了连续的轮廓点集,根据设定的7种转化规则,直接在“底层算法”上实现“像元轮廓点坐标”到“栅格边界点坐标”的转化,无需考虑像元的连通域信息,大大提高了求栅格图像上包裹连通域的轮廓边界点的效率。本发明高效解决界面显示像元轮廓坐标和栅格边界轮廓坐标对应问题,可应用于多种应用场景,例如图像外轮廓的矢量化;
35、(6)本发明只依赖像元轮廓点的坐标信息,两坐标点的8邻域方向和相对于主方向的方向关系,处理过程不再依赖其他信息,可方便实现算法;
36、(7)本发明提及的7种转化规则,是根据轮廓8邻域里的7个方向与主方向的关系总结出来的转化规则,该转化规则只需要考虑轮廓点的两点坐标位置关系,即可得到栅格边界轮廓的坐标。