OpenCV 如何计算二进制对象的面积?

标签 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 功能。你可以看看。

Blob

BlobMaker

它是用 Python 编写的,但您可以将它移植到 C++ 并使用 blob。

关于OpenCV 如何计算二进制对象的面积?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12316031/

相关文章:

python - 使用 Python openCV PIL 将黑色更改为白色但不将白色更改为黑色

c++ - OpencV中的背景和前景

opencv - 有没有办法使用 haar 级联从检测到的对象获取所有坐标?

python - 用参数OpenCV Python发送带有颜色的矩形时出错

python - 在 OpenCV 中保存视频(Linux、Python)

c++ - 在 C++ 中包含 OpenCV for Project

opencv - 旋转矩阵的微小变化完全破坏了立体声重建

python - 带有 bool 输出的opencv python颜色检测

opencv - SIFT特征检测器产生未处理的异常

python - 在numpy中找到单色投影矩形的角