我想开发一个应用程序,它可以识别出现在相机前面的物体(如纪念碑或其他东西)OpenCv
,然后它会显示有关它的信息。
所以问题是如何识别物体(如纪念碑或其他东西)的形状或与图像进行比较OpenCV
?
这样做的最佳方法是什么?
如果有某种用于对象检测和比较的示例或教程会很好。
谢谢你。
我想开发一个应用程序,它可以识别出现在相机前面的物体(如纪念碑或其他东西)OpenCv
,然后它会显示有关它的信息。
所以问题是如何识别物体(如纪念碑或其他东西)的形状或与图像进行比较OpenCV
?
这样做的最佳方法是什么?
如果有某种用于对象检测和比较的示例或教程会很好。
谢谢你。
最好的方法是使用本地特征检测器,例如 OpenCV 的 SIFT、SURF 和 ORB。
您需要至少一张来自要检测的对象的图片。之后,这些算法可以将该图像与其他图像进行比较,看看它们是否足够相似。
这是算法的文档。
http://docs.opencv.org/modules/features2d/doc/feature_detection_and_description.html
http://docs.opencv.org/modules/nonfree/doc/feature_detection.html
这些算法为该任务工作的方式是为每个图像选择有趣的点,然后比较它们以查看它们是否匹配。如果找到多个匹配项,则很可能这些图像具有相同的对象。
教程(来自特征检测及以下):
您还可以在此处找到与此主题相关的C++ 示例(示例也在 OpenCV 下载包中):
http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/cpp
这里还有Android Java 示例(不相关但也很有帮助):
http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/android
或Python 示例,它们实际上是该主题的更新版本(在撰写本文时):
http://code.opencv.org/projects/opencv/repository/revisions/master/show/samples/python2
最后一点,就像@BDFun 在评论中所说的那样,这并非易事。
更多 -如果您想了解 OpenCV 特征检测和描述的概述,请查看这篇文章。