opencv3.x fatal error: opencv2/nonfree/nonfree.hpp: 没有那个文件或目录

在使用sift算法做匹配时,编译报错:

fatal error: opencv2/nonfree/nonfree.hpp: 没有那个文件或目录
#include 

上网查阅,基本都在说下载 opencv-nonfree:

sudo apt-get update
sudo add-apt-repository --yes ppa:xqms/opencv-nonfree
sudo apt-get update
sudo apt-get install libopencv-nonfree-dev

结果运行第二条指令又有新的报错:

sudo add-apt-repository --yes ppa:xqms/opencv-nonfree
Cannot add PPA: 'ppa:~xqms/ubuntu/opencv-nonfree'.
ERROR: '~xqms' user or team does not exist.

认真查阅后发现,对于opencv2.x版本,在ubuntu系统下还是挺好安装的,只需通过上面指令安装。
而对于opencv3.x版本,SURF/SIFT 以及其它的一些东西被移动到了独立的库opencv_contrib下面,我的在下面地址找到了:

opencv-3.4.0/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d/nonfree.hpp

把#include 换成绝对路径,遂解决。

你可能感兴趣的:(opencv,ubuntu,sift算法)