我想开发一个应用程序,可以使用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所说,这并不是易于完成的。