connectedComponentsWithStats ()详细用法

前面的博客有Opencv连通域分析 connectedComponents函数的用法示例 
这里讲一个 connectedComponentsWithStats 函数的用法,这个函数能返回除了连通域图之外,还有一些统计信息。 
用法:

Mat Imglabels, Imgstats, Imgcentriods;
int Imglabelnum = connectedComponentsWithStats(Imgbw, Imglabels, Imgstats, Imgcentriods);

其中Imgbw是一个二值图,输出Imglabels是一副depth 是CV_32F的标签图,不同的连通域被赋该连通域的标签的值。 Imgstats包含了一些信息,如果想知道标签为i的连通域的一些信息,可以如下访问

Imgstats.at<int>(i, CC_STAT_AREA) //连通域的面积
double left = Imgstats.at<int>(i, CC_STAT_LEFT); //连通域的boundingbox的最左边
double top = Imgstats.at<int>(i, CC_STAT_TOP);//连通域的boundingbox的最上边
double width= Imgstats.at<int>(i, CC_STAT_WIDTH)  ;//连通域的宽
double height Imgstats.at<int>(i, CC_STAT_HEIGHT) ;//连通域的高

另外,连通域的重心

Point2f pt;  //pt就是重心
pt.x = Imgcentriods.at<double>(i, 0);
pt.y = Imgcentriods.at<double>(i, 1);

连通域的个数 
int labelNum =Imgcentriods.rows;
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值