连通成分的标记原理
连通成分是给二值图像中的每个连通区域标上一个特定标号的算法,该算法可以用来对图像中的目标进行定位和计数。
邻域:
中间像素与他周围像素之间的位置关系决定了是几邻域连接,如下图表示了4邻域与8邻域
算法思路
使用的数据结构为队列,用元组模仿队列,将像素的坐标值入队
1、从左到右,从上到下遍历每一个像素,判断该像素的像素值是否为1,并且判断它是否被标记过,如果没有被标记过并且像素值为1,则将该像素的位置入队。
2、查找该像素的8邻域内有没有像素值为1的并且没有被标记过的像素,有的话则给与它与该像素一样的标记,并且将该像素入队。
3、每次判断完一个像素的8邻域之后要记得将队列头加一。
4、队列为空之后即表示一个连通区域标记完成。则换一种标记,将队列置空,接着进行其他像素的判断。
Matlab代码
s=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0; %这个矩阵是维基百科中的矩阵
0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0;
0 0 0 1 1 1 1 0 0 0 1