<分区>
我正在使用 OpenCV 和 C++。二值化后我有黑白图像。当我只有一个坐标点 (x,y) 属于这个对象时,如何计算对象的面积??
标签 opencv
<分区>
我正在使用 OpenCV 和 C++。二值化后我有黑白图像。当我只有一个坐标点 (x,y) 属于这个对象时,如何计算对象的面积??
最佳答案
因为它是一个二进制图像,你可以很容易地得到 blobs .获得 Blob 后,您可以轻松计算 Blob 面积。 您可以使用 cvBlobsLib得到 Blob 。 OpenCV 尚未集成 cvBlobsLib。你可以自己做。但是 OpenCV 具有轮廓功能。您可以使用 findContours 获取 Blob /轮廓,然后获取该区域。 OpenCV - findContours
OpenCV - Structural Analysis and Shape Description
您会找到有关时刻、huMoments、轮廓等的信息。使用时刻,您可以创建自己的 blob,它也将帮助您获得 blob 区域。
这是一个用于机器视觉的开源框架,它使用 OpenCV 的 Python 绑定(bind) - SimpleCV
他们使用轮廓和力矩实现了完整的 blob 功能。你可以看看。
它是用 Python 编写的,但您可以将它移植到 C++ 并使用 blob。
关于OpenCV 如何计算二进制对象的面积?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12316031/