【Opencv】cv2.connectedComponentsWithStats 计算不规则连通区域

【Opencv】cv2.connectedComponentsWithStats 计算不规则连通区域

0. 介绍

计算不规则连通区域是指在图像中提取出不规则的、由像素点连接而成的连通区域。OpenCV提供了一种函数叫做cv2.connectedComponents(),用于实现这个功能。

原理:

  • 首先,将二值化图像中的前景部分(像素值为1)与背景部分(像素值为0)进行标记。
  • 然后,使用基于连通性的算法,将像素点进行分组,并给每个组分配一个唯一的标签。
  • 最终得到的结果是连通区域的数量和每个像素点所属的标签。

应用:

  • 目标检测和跟踪:通过计算不规则连通区域,可以实现对目标对象的检测和跟踪,进而进行目标识别、运动分析等应用。
  • 图像分割:将图像分割成不同的不规则连通区域,用于图像分析、对象提取和图像处理等任务。
  • 图像分析和特征提取:通过计算不规则连通区域的属性,如面积、周长、重心等,可用于分析图像中的形状、纹理、边缘等特征。
  • 图像处理和修复:通过计算不规则连通区域,可以定位和修复图像中的缺陷、噪声或损坏部分,如去除图像中的小斑点或孔洞。
  • 计算机视觉和机器学习:不规则连通区域的计算可以作为计算机视觉和机器学习算法的预处理步骤,用于提取图像中的特征,构建模型等。

需要注意的是,计算不规则连通区域在处理复杂图像时可能会受到噪声和边缘模糊等因素的影响,因此在使用时可能需要进行图像预处理、参数调整等措施来优化结果。

1. 函数

num, labels, stats, centroids = cv2.connectedComponentsWithStats(image, connectivity=8)

输入值:

  • image : 是要处理的图片,官方文档要求是8位单通道的图像。
  • connectivity : 可以选择是4连通还是8连通。
    输出值:
  • num : 返回值是连通区域的数量。
  • labels : labels是一个与image一样大小的矩形(labels.shape = image.shape),其中每一个连通区域会有一个唯一标识,标识从0开始。
  • stats :stats会包含5个参数分别为x,y,h,w,s。分别对应每一个连通区域的外接矩形的起始坐标x,y;外接矩形的wide,height;s为对应的连通区域的像素个数(也就是不规则连通区域的面积)。
  • centroids : 返回的是连通区域的质心。

详解可参考–>详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋冬无暖阳°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值