1

我想为我的项目检测二进制图像中最大的 BLOB。你能指导我怎么做吗?

谢谢

4

3 回答 3

5

用于findContours查找图像中的所有 blob,并使用contourArea您可以计算 blob 的面积。所以只需找到面积最大的轮廓(斑点)。

于 2012-08-28T11:19:21.580 回答
2

一个好的开始点是CVBloblib。我过去用过它,它工作正常。

那么这只是一个计算斑点面积或周长的问题,这取决于你想要什么:)

于 2012-08-28T11:19:36.977 回答
0

我不知道这里的最佳做法是什么,但我会这样做:

  • 首先找到所有的blob。您可以使用 cvBlobslib 或 cvBlob 或 findContours 等。
  • 然后将所有 blob 存储在向量中。按 blob 的区域对矢量进行排序。然后得到最后一个blob。

    bool sortBlobsASC(CBlob first, CBlob second) { return first.Area() < second.Area(); }

    std::sort(myvec.begin(), myvec.end(), sortBlobsASC);

于 2012-08-28T11:22:44.577 回答