二值图像的分析首先是区分所提取出的不同的目标物,之后,对不同的目标物特征差异进行描述与计算,最后获得所需要的分析结果。区分目标物的时候,往往就需要根据联通域来做贴标签的工作。
一、连通域
将相互连在一起的黑色像素的集合称为一个连通域,一般使用四连接意义或八连接意义来判断连通域,同样的图,不同的连接意义下,连通域也不同
四连接:当前像素为黑,其四个近邻像素中至少有一个为黑
八连接:当前像素为黑,其八个近邻像素中至少有一个为黑
如下图
一般通过统计连通域的个数,即可获得提取的目标物的个数。
二、贴标签
1、基本思路
因为不同的连通域代表了不同的目标,为了加以区别,需要对不同的连通域进行标识。
2、算法步骤
0. 设一个二值矩阵表示一个黑白图像,为讨论方便起见,令“黑=1”,“白=0”。
1. 初始化:设标签号为Lab=0,已贴标签数N=0,标签矩阵g为全0阵,按照从上到下,从左到右的顺序寻找未贴标签的目标点,记为g(i,j)
2. 检查相邻像素的状态:根据模板中的相邻像素的状态进行相应的处理,这里就要注意联系上面提到的连通域的概念。处理方式有如下三种
如果扫描过的像素不均为0,则Lab=Lab+1, g(i,j)=Lab,N=N+1;
如果扫描过的像素标签号相同,则g(i,j)=Lab;
如果扫描过的像素标签号不相同,例如:Lab2> Lab1, 则g(i,j)=Lab1,N=N-1,修改所有为Lab2的像素值,使之为Lab1;
3.将全部的像素进行2.的处理,直到所有的像素全部处理完成;
4. 判断最终的Lab是否满足Lab=N,
是,则贴标签处理完成;
否,则表明已贴标签存在不连号情况。这时,可以进行一次编码整理,消除不连续编号的情况。编码整理就很简单了