OpenCV结构分析与形状描述符(6)带统计的连通组件计算函数connectedComponentsWithStats()的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

connectedComponentsWithStats 函数计算布尔图像的连通组件标记图像,并为每个标记产生统计信息。

该函数接受一个具有4或8连通性的二值图像,并返回 N,即标签总数(标签范围为 [0, N-1],其中 0 代表背景标签)。ltype 参数指定了输出标签图像的类型,这是基于标签总数或源图像中的像素总数的一个重要考虑因素。ccltype 参数指定了要使用的连通组件标记算法,目前支持 Bolelli(Spaghetti)[31]、Grana(BBDT)[108] 和 Wu(SAUF)[296] 算法,详见 ConnectedComponentsAlgorithmsTypes。请注意,SAUF 算法强制使用行主序(row-major order)的标签,而 Spaghetti 和 BBDT 不强制。如果至少有一个允许的并行框架被启用,并且图像的行数至少是 getNumberOfCPUs 返回值的两倍,该函数将使用并行版本的算法(包括统计信息)。

函数原型


int cv::connectedComponentsWithStats	
(
	InputArray 	image,
	OutputArray 	labels,
	OutputArray 	stats,
	OutputArray 	centroids,
	int 	connectivity,
	int 	ltype,
	int 	ccltype 
)		

参数

  • 参数image: 要标记的8位单通道图像。
  • 参数labels: 目标标记图像。
  • 参数stats: 每个标记(包括背景标记)的统计信息输出。统计信息通过 stats(label, COLUMN) 访问,其中 COLUMN 是 ConnectedComponentsTypes 中的一个选择项,数据类型为 CV_32S。
  • 参数centroids: 每个标记(包括背景标记)的质心输出。质心通过 centroids(label, 0) (x坐标)和 centroids(label, 1) (y坐标)访问,数据类型为 CV_64F。
  • 参数connectivity: 连通性设置,8表示8邻接,4表示4邻接。
  • 参数ltype: 输出图像的标签类型。目前支持 CV_32S 和 CV_16U。
  • 参数ccltype: 连通组件算法类型(详见 ConnectedComponentsAlgorithmsTypes)。

代码示例

终端输出:

Number of components: 2
Component 1: Left: 50, Top: 50, Width: 200, Height: 200, Area: 20000
Centroid of Component 1: (149.5, 149.5)

图像输出

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值