【问题标题】:Detect shapes using Open CV使用 Open CV 检测形状
【发布时间】:2013-08-19 06:24:32
【问题描述】:

我一直在尝试检测图像中的形状,并计算图像中存在多少此类形状,例如加号。是否有任何内置功能来检测这种形状?如果有请告诉我。

谢谢。

【问题讨论】:

标签: c opencv shape-recognition


【解决方案1】:

您需要找到图像中的所有轮廓,然后对其进行过滤。

我们知道加号有 12 个角。因此,您需要过滤所有具有 12 个角的轮廓。当然,有时这会给你一些不需要的对象。因此,您可以再次过滤那些在 2 条线(3 个角)之间的角度最大为 0.3 cos 的轮廓。

查看 OpenCV 示例目录中的 squares.cpp。它找到所有具有 4 个角和最大角度的轮廓。 0.3 因数所以几乎所有的正方形。

【讨论】:

  • 是的,寻找轮廓甚至是我的想法。我必须更深入地了解角度和角是如何被检测到的。谢谢(你的)信息 。我会调查一下然后回来!!
【解决方案2】:

您还可以查看霍夫变换。

【讨论】:

【解决方案3】:

检测形状的一种方法是使用cvBlobsLib

执行二进制图像连接组件标记的库 (类似于 regionprops Matlab 函数)。它还提供功能 从提取的 blob 中操作、过滤和提取结果, 有关详细信息,请参阅功能部分。

例如,请参阅: https://www.youtube.com/watch?v=Y8Azb_upcIQ

另一种方法是使用EmguCV

Emgu CV 是 OpenCV 图像的跨平台 .Net 包装器 处理库。允许从 .NET 调用 OpenCV 函数 兼容的语言,如 C#、VB、VC++、IronPython 等。包装器 可以在 Mono 中编译并在 Windows、Linux、Mac OS X、iPhone、 iPad 和 Android 设备。

【讨论】:

  • 我之前使用过 cvblobslib 进行人员跟踪,但这基本上是为了检测移动物体。需要找到一种方法来使用它来检测形状。谢谢。
猜你喜欢
  • 1970-01-01
  • 2020-09-27
  • 2014-08-26
  • 2011-06-29
  • 1970-01-01
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多