使用Open CV检测形状

时间:2013-08-19 06:24:33

标签: c opencv shape-recognition

我一直在尝试检测图像中的形状,并且还计算出图像中存在多少这样的形状,例如加号。是否有内置功能来检测这些形状?如果有的话请告诉我。

谢谢。

3 个答案:

答案 0 :(得分:1)

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

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

看一下OpenCV的samples目录中的squares.cpp。它找到了4个角和最大角度的所有轮廓。 0.3 cos。几乎所有的广场都是如此。

答案 1 :(得分:0)

您还可以查看Hough变换。

答案 2 :(得分:0)

检测形状的一种方法是使用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设备。