用途:
在需要将前景目标提取出来以便后续进行处理的应用场景中都能够用到连通区域分析方法,通常连通区域分析处理的对象是一张二值化后的图像。
前提处理:可以先进行效果更好的分割和预处理操作,然后再进行不同的区域连通判断
或者也可以进行膨胀处理,将一些较小的区域或者相似的区域进行连接;
一、
num_objects, labels = cv2.connectedComponents(image)
参数:image:也就是输入图像,必须是二值图,即8位单通道图像。
返回值:num_labels:所有连通域的数目
labels:图像上每一像素的标记,用数字1、2、3…表示(不同的数字表示不同的连通 域)
二、
cv2.connectedComponentsWithStats()
这个函数的作用是对一幅图像进行连通域提取,并返回找到的连通域的信息:retval、labels、stats、centroids
num_labels, labels, stats, centroids = cv2.connectedComponentsWithStats(image, connectivity=8, ltype=None)
参数:
image:也就是输入图像,必须是二值图,即8位单通道图像。
connectivity:可选值为4或8,也就是使用4连通还是8连通。
ltype:输出图像标记的类型,目前支持CV_32S 和 CV_16U。
返回值:
num_labels:所有连通域的数目
labels:图像上每一像素的标记,用数字1、2、3…表示(不同的数字表示不同的连通域)
stats:每一个标记的统计信息,是一个5列的矩阵,每一行对应每个连通区域的外接矩形的x、y、width、height和面积
centroids:连通域的中心点