我已经使用支持CUDA和TBB的源代码构建了openCV 3.0 alpha版本。现在,我想使用SURF算法进行特征检测和特征匹配。SurfFeatureDetector存在于以下包含文件中:
opencv2/nonfree/features2d.hpp & opencv2/nonfree/features2d.hpp
但是,在这个openCV版本中缺少nonfree模块。我尝试查看answers.opencv.org上的opencv论坛,但该网站正在施工中。
如何使用这些非免费模块?
我已经使用支持CUDA和TBB的源代码构建了openCV 3.0 alpha版本。现在,我想使用SURF算法进行特征检测和特征匹配。SurfFeatureDetector存在于以下包含文件中:
opencv2/nonfree/features2d.hpp & opencv2/nonfree/features2d.hpp
但是,在这个openCV版本中缺少nonfree模块。我尝试查看answers.opencv.org上的opencv论坛,但该网站正在施工中。
如何使用这些非免费模块?
在opencv3.0中,SURF/SIFT和其他一些内容已经被移动到单独的opencv_contrib仓库中。
你需要下载它,将其添加到你的主要opencv cmake设置中(请查看那里的readme),然后重新运行cmake/make。
接下来:
#include "opencv2/xfeatures2d.hpp"
...
Ptr<SIFT> sift = cv::xfeatures2d::SIFT::create(...);
sift->detect(...);
你也可以从这个PPA安装所有的非自由软件。
sudo add-apt-repository ppa:ignaciovizzo/opencv3-nonfree
sudo apt-get update
sudo apt install libopencv-dev