我正在尝试根据视频的位置对视频中的已连接组件进行分类。我正在使用opencv 3中的connectedComponentsWithStats函数。我试图从stats矩阵访问值,这是1x5矩阵。当我使用以下代码时,我成功访问了连接组件的区域。
connectedComponentsWithStats(median_difference3, labels, stats, centroids, 8, CV_16U);
int area= stats.at<int>(0,4);
cout << area << endl;
当我尝试使用
访问矩阵的第一个值时int x= stats.at<int>(0,0);
我得到的所有值都是零。
为了确认何时输出完整的统计矩阵,矩阵的0,0位置中的值并不总是为零,因此它们应该以区域矩阵的相同方式变化。 stat矩阵中的值也总是整数。
如果你能看到我做错了什么,我将不胜感激!
答案 0 :(得分:0)
统计信息的第一行是指背景:
来自doc
statsv - 每个标签的统计信息输出,包括背景标签
您只需检查stats
的行数即可知道您是否有某个前景组件,或检查connectedComponentsWithStats
返回的标签数量。