C++ 使用OpenCV计算对象的面积
我需要使用OpenCV计算灰度图片中水滴/对象的面积(加载为Mat,而不是IplImage)。 我认为获得边的坐标(边的数量因对象而异)或获得轮廓的所有坐标,然后使用C++ 使用OpenCV计算对象的面积,c++,opencv,contour,C++,Opencv,Contour,我需要使用OpenCV计算灰度图片中水滴/对象的面积(加载为Mat,而不是IplImage)。 我认为获得边的坐标(边的数量因对象而异)或获得轮廓的所有坐标,然后使用contourArea()计算对象的面积是个好主意 通过使用findContours()(用C++编程),我删除了所有的噪音,得到了一些令人满意的轮廓 现在我明白了,param等高线已经拥有我的对象的所有等高线的坐标。我说对了吗 如果是,有没有办法访问它们 如果没有,我怎么得到轮廓的坐标呢 等高线实际上定义为 vector<v
contourArea()
计算对象的面积是个好主意
通过使用findContours()
(用C++编程),我删除了所有的噪音,得到了一些令人满意的轮廓
现在我明白了,param等高线
已经拥有我的对象的所有等高线的坐标。我说对了吗
如果是,有没有办法访问它们
如果没有,我怎么得到轮廓的坐标呢
等高线
实际上定义为
vector<vector<Point> > contours;
谢谢!我花了很短的时间才理解您在做什么,但据我所知,从现在起它起作用了:)我已经在这个问题上坐了好几天,没有看到任何解决方案……阅读文档会为您节省很多时间:)。OpenCV附带的示例代码也很棒。
vector<vector<Point> > contours;
for (unsigned int i = 0; i < contours.size(); i++)
{
std::cout << "# of contour points: " << contours[i].size() << std::endl;
for (unsigned int j=0; j<contours[i].size(); j++)
{
std::cout << "Point(x,y)=" << contours[i][j] << std::endl;
}
std::cout << " Area: " << contourArea(contours[i]) << std::endl;
}