为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用OpenCV检测简单的几何形状

如何使用OpenCV检测简单的几何形状

HUX布斯 2019-07-29 16:03:48
如何使用OpenCV检测简单的几何形状我有这个项目,我需要(在iOS上)检测图像内的简单几何形状。在搜索互联网后,我得出结论,最好的工具是OpenCV。事情是,直到两个小时前,我不知道OpenCV是什么,我甚至从未做过任何涉及图像处理的事情。我的主要经验是JS / HTML,C#,SQL,Objective-C ......我从哪里开始呢?我已经找到了这个答案,我能够消化并通过阅读其他东西,我知道OpenCV应该返回带有点/角的形状数组,这是真的吗?它还将如何代表一个圆圈或半圆圈?还有形状方向呢?你知道任何可以展示类似功能的Demo iOS项目吗?
查看完整描述

3 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

答案取决于其他形状的存在,噪声水平(如果有)和您想要提供的不变性(例如旋转,缩放等)。这些要求不仅将定义算法,还将定义预处理阶段以提取特征。

上面提到的模板匹配在形状没有旋转或缩放以及周围没有类似形状时效果很好; 换句话说,它在模板所在的图像中找到最佳翻译:

double minVal, maxVal;Point minLoc, maxLoc;Mat image, template, result; // template is your shapematchTemplate(image, template, result, CV_TM_CCOEFF_NORMED);minMaxLoc(result, &minVal, &maxVal, &minLoc, &maxLoc); // maxLoc is answer

几何散列是一种在旋转和缩放方面获得不变性的好方法; 这种方法需要提取一些轮廓点。

广义Hough变换可以处理不变性,噪声并且具有最少的预处理,但是比其他方法更难实现。OpenCV具有线条和圆形的变换。

在形状数量有限的情况下,计算力矩或计算凸包顶点可能是最简单的解决方案:openCV结构分析


查看完整回答
反对 回复 2019-07-29
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

您还可以使用模板匹配来检测图像内的形状。


查看完整回答
反对 回复 2019-07-29
  • 3 回答
  • 0 关注
  • 1747 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信