fatal error: opencv2/contrib/contrib.hpp' file not found

版权声明:未经博主允许,不得转载! https://blog.csdn.net/u011681952/article/details/84661726

问题分析

1 问题
 在建立好基于opencv3的深度学习Caffe环境后,运行一些特殊的基于opencv2的caffe_demo编译时出现:
fatal error: opencv2/contrib/contrib.hpp: 没有那个文件或目录
 如下图

在这里插入图片描述

2 分析
 首先不要怀疑opencv3安装出了问题,个人找了些博客,得出结论:
opencv3中已经没有了contrib这个模块,特别指出不是编译opencv_contrib的问题,而是opencv_contrib中也没有contrib模块
 所以再怎么重装opencv3+opencv_contrib也是无效的

问题解决

3 解决方案
 如果是在python中调用contrib模块,大可直接:

sudo  pip  install opencv-contrib-python

 但我们这里是C/C++,所以我的办法是再安装一个opencv2版本

4 opencv2安装注意事项
 这里值得一提的是,我的Ubuntu环境为了满足大多demo需求,已经安装了opencv3.4.0版本,安装opencv2只是满足个别demo,所以再安装opencv2时要注意下面几点:
 1)安装的系统路径不能再是:/usr/local (opencv3已经占用,不能冲突)
 2)建议不要再安装opencv_python (opencv3已经支持)

5 opencv2安装

 本中选择opencv2.4.10,在自己放安装包的目录下

mkdir opencv24
cd opencv24
wget https://github.com/opencv/opencv/archive/2.4.10.zip
unzip 2.4.10.zip
cd opencv-2.4.10
mkdir build
cd build
cmake-gui

 Generate步骤和opencv3安装一样
 然后,注意
1)去掉BUIILD_opencv_python
 2)去掉WITH_CUDA (有它编译出错,可根据自己情况决定)
 3)更改CMAKE_INSTALL_PREFIX的Value值:/usr/local/opencv2410
(默认为/usr/local,可根据自己喜好设置路径,但要记住放在那里的)
4)再次Generate,若无错,再Configure,关闭cmake-gui
5)编译

make all -j16
sudo make install 

6)ok

在这里插入图片描述

扫描二维码关注公众号,回复: 4877092 查看本文章

7)查看 (该目录就有contrib模块了)

ll /usr/local/opencv2410/include/opencv2/


在这里插入图片描述

应用

6 caffe调用
1)cmake方式
 在CMakeLists.txt中,project(Caffe C CXX)之前加上:
set(OpenCV_DIR “/usr/local/opencv2410/share/OpenCV”)
 注意这里的引号,结果如图红色字体才对
 即可,再次编译
 本人亲测有效

在这里插入图片描述

2)make方式
 目前在连接opencv库还有点问题,待测试成功再更新,当然只要一种方式能成功,caffe就可以跑起了

猜你喜欢

转载自blog.csdn.net/u011681952/article/details/84661726
今日推荐