OpenCV如何计算二进制对象的面积? 我使用OpenCV和C++。我有黑白图像后,二值化。当我只有一个点(x,y)的坐标属于该对象时,如何计算该对象的面积???

OpenCV如何计算二进制对象的面积? 我使用OpenCV和C++。我有黑白图像后,二值化。当我只有一个点(x,y)的坐标属于该对象时,如何计算该对象的面积???,opencv,Opencv,由于它是一个二值图像,您可以很容易地获得该图像。一旦得到水滴,就可以轻松计算水滴面积。 你可以用它来获得斑点。OpenCV没有集成cvBlobsLib。你可以自己做。但是OpenCV具有轮廓的功能。您可以使用findContours获取斑点/轮廓,然后获取面积 您将找到有关瞬间、休谟、轮廓等的信息。使用瞬间,您可以创建自己的斑点,它还将帮助您获得斑点区域 这是一个机器视觉的开源框架,它使用OpenCV的Python绑定- 他们使用轮廓和力矩实现了完整的blob功能。你可以看看 它是用Pyt

由于它是一个二值图像,您可以很容易地获得该图像。一旦得到水滴,就可以轻松计算水滴面积。 你可以用它来获得斑点。OpenCV没有集成cvBlobsLib。你可以自己做。但是OpenCV具有轮廓的功能。您可以使用findContours获取斑点/轮廓,然后获取面积

您将找到有关瞬间、休谟、轮廓等的信息。使用瞬间,您可以创建自己的斑点,它还将帮助您获得斑点区域

这是一个机器视觉的开源框架,它使用OpenCV的Python绑定-

他们使用轮廓和力矩实现了完整的blob功能。你可以看看


它是用Python编写的,但是可以将它移植到C++中,使用BLUB.

你必须编写一种区域生长算法,从你的起始点开始,逐步添加相同颜色的相邻像素。


一种懒散(且速度慢得多)的方法是使用cv::floodFill函数,将形状中的像素设置为特定颜色,然后计算图像中具有该特定颜色的像素。

该算法非常简单,应该如下所示:

  • 循环浏览所有轮廓和轮廓
  • 如果找到轮廓,则进行计算