【发布时间】:2013-08-19 06:24:32
【问题描述】:
我一直在尝试检测图像中的形状,并计算图像中存在多少此类形状,例如加号。是否有任何内置功能来检测这种形状?如果有请告诉我。
谢谢。
【问题讨论】:
标签: c opencv shape-recognition
我一直在尝试检测图像中的形状,并计算图像中存在多少此类形状,例如加号。是否有任何内置功能来检测这种形状?如果有请告诉我。
谢谢。
【问题讨论】:
标签: c opencv shape-recognition
您需要找到图像中的所有轮廓,然后对其进行过滤。
我们知道加号有 12 个角。因此,您需要过滤所有具有 12 个角的轮廓。当然,有时这会给你一些不需要的对象。因此,您可以再次过滤那些在 2 条线(3 个角)之间的角度最大为 0.3 cos 的轮廓。
查看 OpenCV 示例目录中的 squares.cpp。它找到所有具有 4 个角和最大角度的轮廓。 0.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 设备。
【讨论】: