OpenCV python 连通域操作

连通域提取

原理

API函数

  • cv2.connectedComponents()
  • cv2.connectedComponentsWithStats()

cv2.connectedComponents()

OpenCV python 连通域操作_第1张图片

函数

num_objects, labels = cv2.connectedComponents(image)

参数

  • image: 8 位单通道图像 (二值化后的图像)
  • label 带标注的目标图像(不知道什么用??)
  • connectivity 4连通或者8连通
  • ltype 输出图像标记的类型,目前支持CV_32S 和 CV_16U。

返回值
num_labels:所有连通域的数目
labels:图像上每一像素的标记,用数字1、2、3…表示(不同的数字表示不同的连通域)

cv2.connectedComponentsWithStats()

num_labels, labels, stats, centroids = cv2.connectedComponentsWithStats(image, labels=None, stats=None, centroids=None, connectivity=None, ltype=None)

参数

  • image 二值图,即8位单通道图像。(因此输入图像必须先进行二值化处理才能被这个函数接受)
  • connectivity:可选值为4或8,也就是使用4连通还是8连通。
  • ltype:输出图像标记的类型,目前支持CV_32S 和 CV_16U。
  • num_labels:所有连通域的数目

返回值

  • num_labels: labels 的数量
  • labels:图像上每一像素的标记,用数字1、2、3…表示(不同的数字表示不同的连通域)
  • stats:每一个标记的统计信息,是一个5列的矩阵,每一行对应每个连通区域的外接矩形的x、y、width、height和面积。x,y:分别对应每一个连通区域的外接矩形的起始坐标;wide,height:外接矩形的宽度和高度;s:labels对应的连通区域的像素个数。
  • centroids:连通域的中心点

你可能感兴趣的:(图像处理,opencv,python,计算机视觉)