gpt4 book ai didi

c++ - 如何在 OpenCV 中使用 SimpleBlobDetector?

转载 作者:太空狗 更新时间:2023-10-29 21:01:49 27 4
gpt4 key购买 nike

什么是SimpleBlobDetector实际上呢?

它返回一些点给我,但这些点是什么?

Blob 检测器是否找到具有相似属性(包括颜色)的图像区域?

我可以检索找到的 Blob 的轮廓吗?我在网络上的一些例子中看到了detectEx 函数调用,但是在OpenCV 2.4.5 中没有看到这样的函数。现在用什么代替这个功能?

更新

以下是文档中描述的 Blob 检测算法:

  1. 通过应用阈值将源图像转换为二值图像具有从 minThreshold(含)到maxThreshold(不包括)与距离 thresholdStep 之间相邻的阈值。
  2. 从每一个中提取连接的组件通过 findContours() 提取二值图像并计算它们的中心。
  3. 根据坐标对多个二值图像的中心进行分组。关闭中心形成一组对应于一个 Blob ,这是由 minDistBetweenBlobs 参数控制。
  4. 从这些组中,估计 Blob 的最终中心及其半径并返回为关键点的位置和大小。

不清楚 Blob 应该是圆形的!

最佳答案

它返回的点是图像中 Blob 的中心。假定 blob 是圆形的,大小存储为输出 vector 中关键点的大小,输出 vector 是使用 detect() 函数获得的。您可以使用链接中指定的基于颜色的过滤来指定要查找的 Blob 的颜色。设置 filterByColor = true 并在 blobColor 中指定您要查找的颜色。

如果您正在寻找轮廓,则需要将过程分解为更精细的步骤。获得二值图像的第一个阈值。然后使用 OpenCV 中的 findContours 函数。

关于c++ - 如何在 OpenCV 中使用 SimpleBlobDetector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17169272/

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