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

最初安装opencv的原因是要解决这个问题

问题1:

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

然后最初只安装了opencv3,没有将opencv_contribute安装上,仍然出现了问题1,然后找啊找教程,终于把opencv_contribute安装好了。

结果还是会出现错误1!!!

感谢这位好人的博客,让我知道了:

opencv3中已经没有了contrib这个模块,特别指出不是编译opencv_contrib的问题,而是opencv_contrib中也没有contrib模块。
所以再怎么重装opencv3+opencv_contrib也是无效的。

解决方法:
安装opencv2,并在用到contribute的CMakeLists.txt当中设置opencv的路径。
(1)安装opencv2
在opencv的官网找到opencv2.4.13.5,下载source版本。

mkdir opencv2
cd opencv2
unzip 2.4.x.zip #注意将下载好的文件放入刚创建的opencv2文件夹中,这里是下载的zip文件的文件名
cd opencv2
mkdir build
cd build
cmake-gui

注意:

  • 安装的系统路径不能再是:/usr/local (opencv3已经占用,不能冲突)
  • 建议不要再安装opencv_python (opencv3已经支持)

因此在cmake-gui界面中的操作如下:
1)去掉BUIILD_opencv_python选项
2)去掉WITH_CUDA (有它编译出错,可根据自己情况决定)
3)更改CMAKE_INSTALL_PREFIX的Value值:/usr/local/opencv2 (默认为/usr/local,默认路径已被opencv3占用,因此要换一个,可根据自己喜好设置路径,但要记住放在那里的)
4)Configure无错,则Generate,关闭cmake-gui
5)编译

make all -j16
sudo make install 

(2)在CMakeLists.txt中修改opencv的配置
打开报错文件的CMakeLists.txt,找到有关opencv的设置,找到FIND_PACKAGE(OpenCV 2 REQUIRED)

SET( OpenCV_FIND_REQUIRED )
FIND_PACKAGE(OpenCV 2 REQUIRED)

SET( OpenCV_FIND_REQUIRED )去掉
改为opencv2的路径

SET(OpenCV_DIR “/usr/local/opencv2/share/OpenCV”)
FIND_PACKAGE(OpenCV 2 REQUIRED)

如有问题,请多指教。

你可能感兴趣的:(学习,opencv,ubuntu)