connectedComponentsWithStats ()详细用法

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

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

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

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

另外,连通域的重心

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

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

你可能感兴趣的:(OPENCV,VS2015)