如何在 C++ 中的 OpenCV 3.0.0、Visual Studio 2013 中检测关键点、计算描述符并匹配这些描述符?

Posted

技术标签:

【中文标题】如何在 C++ 中的 OpenCV 3.0.0、Visual Studio 2013 中检测关键点、计算描述符并匹配这些描述符?【英文标题】:How to detect keypoints, compute descriptors and match those descriptors in OpenCV 3.0.0, Visual Studio 2013, in C++? 【发布时间】:2016-03-06 11:21:53 【问题描述】:

我看过 OpenCV 的文档。在那里,SurfFeatureDetectorSurfDescriptorExtractorBruteForceMatcher 正在被使用。

但是当我尝试我的代码时,它显示 -

错误:标识符“SurfFeatureDetector”无法识别。

其他两个情况相同。

在浏览了一些主题和论坛之后,我尝试包含一些头文件,例如 - #include <opencv2 nonfree="" features2d.hpp=""> 和其他一些文件,但这些文件不存在。所以显示另一个错误说 -

错误:无法打开源文件“opencv2/nonfree/features2d.hpp”

在 OpenCV 3.0.0 中有没有其他方法可以做到这些?

【问题讨论】:

Nonfree module is missing in OpenCV 3.0的可能重复 【参考方案1】:

我遇到了类似的问题,当我在系统上本地构建 Opencv 而不是使用预构建的库时,它得到了解决。您可以参考此线程在您的系统上构建 Opencv Where is the lib folder (or its replacement) in the current OpenCV?

在 opencv3.0 中,SURF/SIFT/BruteForceMatcher 已移至单独的 opencv_contrib 存储库,您可以下载它并更改 cmake 路径以便 Visual Studio 识别这些功能。虽然它确实是在我的系统上本地构建后出现的,没有做任何额外的修改。

本地构建后可以在以下路径中找到 build_folder/install/include/opencv2/features2d.hpp

【讨论】:

以上是关于如何在 C++ 中的 OpenCV 3.0.0、Visual Studio 2013 中检测关键点、计算描述符并匹配这些描述符?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中的矩阵中搜索向量以及哪种算法?

在 OpenCv 3.0.0 中使用百分比随机读取一些图像 [关闭]

去除opencv和c++中的边界线

如何跟踪运动物体的轨迹openCV C++

如何在 c++ 中调用 openCV 中的 cvMorphologyEx?

归并排序向量 c++ opencv