gpt4 book ai didi

c++ - 使用 OpenCV 计算物体的面积

转载 作者:可可西里 更新时间:2023-11-01 16:26:53 30 4
gpt4 key购买 nike

我需要使用 OpenCV 计算灰度图片中 Blob /对象的面积(将其加载为 Mat,而不是 IplImage)。我认为获取边的坐标(边的数量从对象到对象变化)或获取轮廓的所有坐标然后使用 contourArea() 计算面积是个好主意我的对象。

我通过使用 findContours()(使用 C++ 编程)删除了所有噪音并获得了一些漂亮且令人满意的轮廓。

findContours(InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy,int mode, int method, Point offset=Point());

现在我明白了参数 contours 已经拥有我对象所有轮廓的坐标。我做对了吗?

如果是,是否有访问它们的方法?

如果不是,我如何获得轮廓的坐标?

最佳答案

contours 实际上定义为

vector<vector<Point> > contours;

现在我想很清楚如何访问它的点数了。

等高线面积由一个名为 contourArea() 的函数计算:

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;
}

关于c++ - 使用 OpenCV 计算物体的面积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11631533/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com