基本思路:
- 二值化后前景图像以1进行标记,背景图像标记为0。
- 遍历原图I,当遇到前景图像时,判断该前景图像是否被标记,若该像素点pix(i,j)未被标记,则保存其坐标值至队列中,并在标记矩阵的对应坐标位置对该像素点进行标记。
- 对pix(i,j)的八个邻域进行搜索,当遇到新的未被标记的前景像素点时,将该点p(i+1,j)(或是其他点)坐标值入列,并在标记矩阵中进行标记。
- 八个邻域搜索标记完成后,将pix(i,j)出列,此时列头为pix(i+1,j),再次进行步骤3的八邻域搜索及标记操作。
- 当一个连通区域标记完成后,标签计数加一,清空队列,再次进行步骤2~4的遍历等操作,标记新的连通区域。
源码:
function IMG = label_blob(I)
%图像连通区域标记
%输入:灰度图矩阵 (可用Matlab自带图像 rice.png 进行测试
%输出:图像内连通区域数量
%%