一种基于逐行扫描的二值图像边界跟踪方法

文档序号:32256971发布日期:2022-11-19 09:05阅读:68来源:国知局
一种基于逐行扫描的二值图像边界跟踪方法

1.本发明属于图像处理领域,特别涉及一种二值图像边界跟踪技术。


背景技术:

2.二值图像是一种特殊的图像表现形式,组成图像的每个像素只有黑色和白色两种颜色。二值图像在图像处理领域中有非常重要的作用,如便于对图像的轮廓进行分析、匹配、识别等。
3.边界跟踪一种获得二值图像中目标轮廓的方法。在一些图像处理的应用中,如基于轮廓特征的模式识别,需要按照特定顺序排列的目标边界轮廓像素点,边界跟踪算法可以解决该问题。摩尔邻域跟踪法是一种经典且实用的边界跟踪算法,该算法的原理每当遇到一个属于目标的像素点,返回到上一步所在的像素点,然后按顺时针方向遍历该像素点的摩尔邻域,直到遇到下一个属于目标的像素点,重复上述操作直到满足设定的终止条件。该算法的性能较为优异,但是存在一个较大的问题,即选择合适的算法终止条件使得同时兼顾边界跟踪的速度和准确度。


技术实现要素:

4.本发明提出一种基于逐行扫描的二值图像边界跟踪方法,从原理上解决难以选择合适的边界跟踪算法终止条件使得同时兼顾边界跟踪速度和准确度的问题。
5.本发明采用的技术方案为:一种基于逐行扫描的二值图像边界跟踪方法,包括:
6.s1、对二值图像中的像素点按照从左到右顺序,从上到下逐行扫描,若当前像素点的上下前后四个位置的摩尔邻域点中至少存在一个黑色像素点以及一个白色像素点,则将当前像素点标记为目标轮廓上的像素点;
7.s2、判断当前目标轮廓上的像素点是否与其摩尔邻域点中的某个点相连,若相连则执行步骤s4,否则执行步骤s3;
8.s3、执行新增边界片段操作,然后返回步骤s2;
9.s4、执行加入边界片段操作,将当前目标轮廓上的像素点加入边界片段;
10.s5、当扫描完所有的目标轮廓上的像素点,得到目标形状完整的有序边界轮廓点坐标信息。
11.本发明的有益效果:本发明的方法定义了新增边界片段、边界连接判断、加入边界片段三种基础操作,来对二值图像边界进行跟踪,首先根据当前像素点上下左右4个摩尔邻域点中黑色像素点和白色像素点的个数,对目标轮廓上的像素点进行标记;然后对标记的目标轮廓上的像素点根据边界连接判断操作,进行新增边界片段操作,然后执行加入边界片段操作,最终获得目标形状完整的有序边界轮廓点坐标信息;本发明方法从原理上改进了现有的二值图像边界跟踪算法所存在的难以同时兼顾边界跟踪速度和准确度的问题。
附图说明
12.图1为p点的摩尔邻域点标记示意图;
13.图2为p与p2相连的第一类情况示意图;
14.其中,(a)为p1和p5是白色,且p3和p6全为黑色的情况,(b)为p1和p5是白色,且p3为黑色p6为白色的情况,(c)为p1和p5是白色,且p3为黑色p6为白色的情况;
15.图3为p与p2相连的第二类情况示意图;
16.其中,(a)为p3和p6是白色,且p1和p5全为黑色的情况,(b)为p3和p6是白色,且p1为黑色p5为白色的情况,(c)为p3和p6是白色,且p1为黑色p5为白色的情况;
17.图4为p与p1斜向连接的示意图;
18.其中,(a)为p2为黑色p5为白色的情况,(b)为p2为白色p5为黑色的情况;
19.图5为p与p3斜向相连的示意图;
20.其中,(a)为p2为黑色p6为白色的情况,(b)为p2为白色p6为黑色的情况;
21.图6为本发明方法的流程图;
22.图7为二值图像目标边界跟踪示意图;
23.其在,(a)为进行边界跟踪过程的某一时刻存在两条边界片段的情形,(b)为当前像素点可分别与一条边界片段的尾部连接,与另一条边界片段的头部连接的情形,(c)为两条边界片段连接后的示意图。
具体实施方式
24.为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。
25.本发明提供如下的技术方案:
26.首先,为方便描述,对任意像素点p的摩尔邻域内像素点进行标记,如图1所示。
27.然后,介绍本发明方法中设计的几种基础操作,分别为新增边界片段、边界连接判断、加入边界片段。
28.新增边界片段:边界片段是本发明方法中定义的数据结构,它包括以下三个部分:存储边界轮廓片段中有序像素点位置的数组,头指针和尾指针。数组的长度固定,且刚声明时数组内的元素全为空值。数组的有效元素是指已经放入该数组的连续有向边界轮廓像素点位置信息所占用的数组内元素。头指针指向与该数组头部距离最近的有效元素。尾指针指向与该数组尾部距离最近的有效元素。
29.当执行新增边界片段操作时,声明一个新的边界片段,然后将数据放在该数组中间的位置并使头指针指向该位置,然后对尾指针赋空值。
30.边界连接判断:边界连接判断分为直线连接和斜向连接两种。
31.(1)直线连接是指p与p2相连或者p与p6相连。对于与p2相连的情况,首先p2应满足如下条件:是任意边界片段的头部或者尾部,p是待标记的点。图2是p与p2相连的一类情况的示意图,该类情况的共同条件是p1和p5是白色。该类情况中总共有三种不同的情况,如图2(a)所示的情况1中p3和p6全为黑色,如图2(b)所示的情况2和如图2(c)所示的情况3分别是p3与p6的颜色不同。图3是p与p2相连的另一类情况的示意图,该类情况的共同条件是p3和p6是白色。这一类情况也有三种不同的情况,如图3(a)所示的情况4中p1和p5全为黑色,
如图3(b)、(c)所示的情况5和情况6则分别是p1与p5的颜色不同。满足上述6种情况的任意一种,则p与p2相连。
32.对于与p6相连的情况,首先p6应满足如下条件:是任意边界片段的头部或者尾部,p点是待标记的点。p与p6相连的一类情况的共同条件是p2和p3是白色。该类情况中总共有三种不同的情况,情况1中p8和p9全为黑色,情况2和情况3分别是p8与p9的颜色不同。p与p6相连的另一类情况的共同条件是p8和p9是白色。该类情况中也有三种不同的情况,情况4中p2和p3全为黑色,情况5和情况6则分别是p2和p3的颜色不同。满足上述6种情况的任意一种,则p与p6相连。
33.(2)斜向连接,即p与p1或者p与p3相连。对于p与p1相连的情况,首先p1应满足如下条件:是任意边界片段的头部或者尾部。如图4(a)、(b)所示,当p2和p5的颜色不同时p与p1相连。p与p3相连的情况,p3应满足如下条件:是任意边界片段的头部或者尾部,如图5(a)、(b)所示当p2和p6颜色不同时p与p3相连。
34.加入边界片段:
35.经过边界连接判断操作,当p点与其摩尔邻域内某个点p_end连接时执行加入边界片段操作。令segment表示p_end所在的边界片段。
36.(1)首先判断该segment的尾指针是否为空。若为空值,将像素点p的坐标信息放入头指针所指向的有效元素位置处向右移动一个位置的元素内,然后令尾指针指向该新有效元素的位置;若不为空值,则进入(2)。
37.(2)若p_end是segment的尾部,对于segment的尾指针所指向的有效元素所在的位置,找到向后移动一个位置所对应的元素,将像素点p的坐标信息放入该元素中,最后令尾指针指向该元素的位置;若p_end是segment的头部,对于segment的头指针所指向的有效元素所在的位置,找到向前移动一个位置所对应的元素,将像素点p的坐标信息放入该元素中,最后令头指针指向该元素的位置。
38.算法流程:
39.s1:首先,标记出目标轮廓上的像素点。按照从左到右顺序,从上到下逐行扫描每一个像素点。对处于第i行,第j列,且颜色是黑色的像素点pij,若其p(i-1)j,p(i+1)j,pi(j-1),pi(j+1)位置处的四个像素点中,至少存在一个黑色像素点和一个白色像素点,则将pij标记成目标轮廓上的像素点。
40.s2:然后,生成边界轮廓片段。
41.(1)按照每行像素点从左到右的顺序,从上到下逐行扫描二值图像。
42.(2)当遇到一个未放入任何边界片段的边界轮廓点时,依次对其摩尔邻域内p1,p2,p3,p6位置的边界轮廓点执行边界连接判断操作。图7(a)是进行边界跟踪过程的某一时刻示意图,此时存在两条边界片段,分别用seg1和seg2表示。
43.(3)在逐行扫描过程中,存在如下特殊情况:当前正在进行边界连接判断的像素点,其p1、p2、p3和p6位置处的像素点中,存在两个已经放入边界片段的边界轮廓像素点,且这两个边界轮廓像素点分别属于不同的边界片段。此时,执行合并两条边界片段的操作。如图7(b)所示,圆中带叉号的点,其符合与其p1位置的边界轮廓点相连的条件,又符合与其p3位置的边界轮廓点相连的条件,根据边界连接判断的顺序,先执行加入seg2的操作;然后遇到seg1的尾部,按照从尾部到头部的顺序依次对seg1中存储的边界轮廓点执行加入边界片
段操作,至此,完成合并边界片段的操作,如图7(c)所示,此时seg1中的所有轮廓点均放入seg2中,原seg1的头部变成了seg2的头部。
44.s3:逐行扫描结束,输出目标的有序边界轮廓。
45.通过上述步骤,即可获得目标形状完整的有序边界轮廓点坐标信息,本发明的算法流程如图6所示。
46.本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1