opencv 连通域面积_【数字图像处理】LeetCode与图像处理(连通域的计算)

97e612810022cc67f7ebb0436a1be207.png

基本概念

在数字图像处理中,有个连通域的概念

连通区域(Connected Component)一般是指图像中具有相同像素值且位置相邻的前景像素点组成的图像区域(Region,Blob)。

在图像中,最小的单位是像素,每个像素周围有 8 个邻接像素,常见的邻接关系有 2 种:4 邻接与 8 邻接。4 邻接一共 4 个点,即上下左右、8 邻接的点一共有 8 个,包括了对角线位置的点,如下图所示

77428f752f4ec2ef64b05b6bdd89383b.png

二值图(图上的值只有 0 和 1,或者 0 和 255)是非常常用的一种图像,我们可以用它来寻找目标的轮廓,形状识别等操作,同时,我们也利用二值图来寻找一个图像的连通域。如下图,就是一个很直观的连通域图,图中总共有 6 个连通域。

fbf28c04aa3821713bf436c7ebb52c0c.png

寻找连通域的方法

OpenCV 库

在 OpenCV 中,提供了一个函数 cv2.connectedComponentsWithStats 可以帮助我们计算连通域的一些信息,其接口说明如下:

connectedComponentsWithStats(image[, labels[, stats[, centroids[, connectivity[, ltype]]]]]) -> retval, labels, stats, centroids
  • image:输入的图像,必须是单通道 8-bit 的图像
  • labels:一张和输入图像大小一样的掩膜(mask),对于相同的连通域,使用同一个标号进行标记,背景标记为 0
  • stats:记录了连通域的一些信息
  • centroids 连通域的质心
  • connectivity:4 或者 8, 使用 4 连通域还是 8 连通域
  • ltype:输入 labels 的数据类型,CV_32S 或者 CV_16U

下图是一个图像得

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值