OpenCV 3.0缺少非自由模块

21

我已经使用支持CUDA和TBB的源代码构建了openCV 3.0 alpha版本。现在,我想使用SURF算法进行特征检测和特征匹配。SurfFeatureDetector存在于以下包含文件中:

opencv2/nonfree/features2d.hpp & opencv2/nonfree/features2d.hpp

但是,在这个openCV版本中缺少nonfree模块。我尝试查看answers.opencv.org上的opencv论坛,但该网站正在施工中。

如何使用这些非免费模块?


似乎是 http://stackoverflow.com/questions/25549602/nonfree-package-missing-opencv-3-0-alpha 的重复(尽管他们的页面已经关闭,这并没有什么帮助 - 也许那些人可以解释一下他们做了什么?) - Gregor Petrin
据我所知,在构建过程中必须显式选择非免费模块。因此,如果您使用了CMake,则可能会错过某个标志? - Micka
@GregorPetrin-那我应该怎么办?你有没有看到链接上的解决方案? - Chaitanya Uttarwar
@Micka- 我使用了Cmake-gui。在Cmake GUI中,我应该在哪里明确选择非免费模块?谢谢。 - Chaitanya Uttarwar
对于 OpenCV 2.4.9 版本,在 CMake GUI 中有一个 BUILD_opencv_nonfree 复选框。 - Micka
2个回答

24

在opencv3.0中,SURF/SIFT和其他一些内容已经被移动到单独的opencv_contrib仓库中。

你需要下载它,将其添加到你的主要opencv cmake设置中(请查看那里的readme),然后重新运行cmake/make。

接下来:

#include "opencv2/xfeatures2d.hpp"

...
Ptr<SIFT> sift = cv::xfeatures2d::SIFT::create(...);
sift->detect(...);

1
谢谢Berak。我正在按照您建议的方法进行操作。我已经将opencv_contrib-master提取到了opencv源文件夹中。我即将使用Cmake(GUI)进行配置,所以我想问一下是否有任何特殊的Cmake标志,以便构建包含contrib模块的版本? - Chaitanya Uttarwar

0

你也可以从这个PPA安装所有的非自由软件。

sudo add-apt-repository ppa:ignaciovizzo/opencv3-nonfree
sudo apt-get update
sudo apt install libopencv-dev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接