我一直在尝试检测图像中的形状,并且还计算出图像中存在多少这样的形状,例如加号。是否有内置功能来检测这些形状?如果有的话请告诉我。
谢谢。
答案 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设备。