联通域标记与联通域数量统计
联通域标记分为8联通和4联通
以8联通为例,过程比一般人的简单,只需两步
设,signal为联通域的个数,起初设为0.
1.寻找二值化后的目标点,设f(i,j)为目标点,若该点最左,左上,最上,上右都为0(非目标点)则signal加1,并把signal的值赋给f(i,j)。
2.如果f(i,j),最左,左上,最上,上右有非0的点,则将最小的非0点赋值给f(i,j),若f(i,j)边上这四个点有大于最小非零点的点,则将大于最小非零点的点改为最小非零点。
3.重复以上两个步骤,直到将所有目标点遍历
以上上步骤能够将联通域标记,但不能正确的统计联通域数量,如要统计连通域的数量,还需看下面的一个简单过程
统计连通域的数量
先将signal赋值给number
遍历整个图像,统计是否有1,2,3...一直到signal。如果在遍历整个图像统计的时候其中有几个数字的个数为0,就将number减去几。最后得出的number就是连通域的个数
本人提供matlab及c语言两个版本的程序源代码,连接如下:
c语言版本:https://download.csdn.net/download/weixin_43812135/11586876
matlab版本:https://download.csdn.net/download/weixin_43812135/11586833