连通区域标记-行程扫描算法

1.连通域

 对于一幅图像来说,它的基本组成单元是像素,每一个像素又对应一个灰度值.

 联通区域标记针对的是二值图像,二值图像顾名思义就是它的灰度值只存在两种值---0或255的图像,一个连通区域指的是图像中那些位置相邻,灰度值相同的像素集合所组成的区域.

像素和像素之间的邻域关系有4邻域和8邻域,4邻域指的是当前像素的上下左右位置处的像素,8邻域是指上下左右和对角线位置处的像素.

如右图所示,分别对应的是像素的4邻域和8邻域位置关系

  (x,y-1)  
(x-1,y) (x,y) (x+1,y)
  (x,y+1)  

4邻域

(x-1,y-1) (x,y-1) (x+1,y-1)
(x-1,y) (x,y) (x+1,y)
(x-1,y+1) (x,y+1) (x+1,y+1)

8邻域

2.连通区域标记方法

1)基于行程的标记

a.逐行扫描图像,将一行中连续的白色像素组成的序列成为一个团,并记下它的起点和终点,以及它所在的行号.

b.对于除了第一行外的所有行里的团,如果它与前一行的所有团都没有重叠的区域,则给它标记一个新的标号;如果它仅与上一行的一个团有重叠,则将上一行那个团的标号赋给它;如果它与上一行的两个以上的团有重叠,则将几个团中最小的那个标号赋给它,并将这几个标号写入等价对中,说明它们属于同一个区域.

c.将等价对转换为等价序列,且每一序列需要给予同一个标号,因为它们均是等价的.从1开始,给每一个等价序列一个标号.

d.遍历开始团的标记,查找等价序列,赋予它们新的标号.

e.将每一个团的标记填入图像中

f.结束

结合上面图像对行程扫描算法进行说明

第一行,得到两个团[2,6]和[10,13],同时给它们标记1和2.

第二行,得到两个团[6,7]和[9,10],它们和上一行的两个团均有重叠,所以,用上一行的团号进行标记为1和2.

第三行,两个团[2,4]和[7,8],[2,4]和上一行没有重叠,所以,赋予它一个新的标号3,[7,8]和上一行中的两个团均有重叠,所以,赋予它两个团号中较小的那个,即为1,同时,将[1,2]写入等价对.

全部图像遍历完毕之后,我们得到很多个团的起始坐标,结束坐标以及它们所在的行和标号.同时,我们还得到了一个等价对列表.

 

posted on 2015-01-17 17:03  开心~果果  阅读(2621)  评论(0编辑  收藏  举报