Ubuntu Opencv3.4.7和OpenCV_contrib-3.4.7(+CUDA9.0)安装及问题解决

安装前提

1、NVIDIA驱动
2、CUDA9.0已安装

安装文件准备

1.opencv-3.4.7.zip
2. opencv_contrib-3.4.7.zip
3. ippicv_2019_lnx_intel64_general_20180723.tgz
4. face_landmark_model.dat
5. opencv_contrib_patch
【说明】部分文件在线下载较慢,提前下载好,方便快速安装。

安装依赖项

安装官方给的opencv依赖项,在终端输入:
[compiler]
sudo apt-get install build-essential
[required]
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional]
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

以下根据需要安装:
[optional]
sudo apt-get install --assume-yes libopencv-dev libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

[optional]
sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev

[optional]
sudo apt-get install liblapacke-dev checkinstall

编译&安装

1.OpenCV安装配置文件修改
①将opencv-3.4.7.zip解压,然后将opencv_contrib-3.4.7.zip提取到opencv-3.4.7目录下;
②手动下载ippicv_2019_lnx_intel64_general_20180723.tgz,终端执行
gedit /home/xxx/opencv-3.4.7/3rdparty/ippicv/ippicv.cmake
将ippicv.cmake文件下的第47行替换为本地路径
③手动下载 face_landmark_model.dat,终端执行
gedit /home/xxx/opencv-3.4.7/opencv_contrib-3.4.7/modules/face/CMakeLists.txt
将CMakeLists.txt文件的第19行网址修改为下载的文件保存的路径

2.编译、安装
在opencv-3.4.7目录下新建一个文件夹build

mkdir build
cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.4.7 -D INSTALL_PYTHON_EXAMPLES=ON -D INSTALL_C_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/xxx/opencv-3.4.7/opencv_contrib-3.4.7/modules -D PYTHON_EXCUTABLE=/usr/bin/python -D OPENCV_ENABLE_NONFREE=ON -D WITH_CUDA=ON -D WITH_CUBLAS=ON -D DCUDA_NVCC_FLAGS=“-D_FORCE_INLINES” -D CUDA_ARCH_BIN=“6.1” -D CUDA_ARCH_PTX=“” -D CUDA_FAST_MATH=ON -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_GTK=ON -D WITH_OPENGL=ON -D CUDA_GENERATION=Auto -D BUILD_EXAMPLES=OFF . .

sudo make -j6
sudo make install

配置环境

将opencv的库加入到路径,从而让系统可以找到
sudo /bin/bash -c ‘echo “/usr/local/lib” > /etc/ld.so.conf.d/opencv.conf’
sudo ldconfig #使配置生效
sudo gedit ~/.bashrc
末尾加入
export PKG_CONFIG_PATH=/usr/local/opencv3.4.7/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv3.4.7/lib
保存退出,执行:
source ~/.bashrc

安装确认:
pkg-config --modversion opencv
pkg-config --cflags opencv
pkg-config --libs opencv

安装问题汇总

1.”error: ‘nullptr’ was not declared in this scope“
在这里插入图片描述
原因:C11选项未打开;
解决方法:修改opencv的CMakeLists.txt,添加一行
set(OPENCV_CXX11 ON)
在这里插入图片描述
重新cmake … 出现如图所示即解决
在这里插入图片描述
2.“fatal error: opencv2/nonfree/nonfree.hpp: No such file or directory”
”fatal error: opencv2/xfeatures2d.hpp: No such file or directory“
找到该头文件,修改报错文件的头文件。类似其他问题也是这样解决。

3.”fatal error: boostdesc_bgm.i: No such file or directory“
”fatal error: vgg_generated_120.i: “
下载缺少的文件(https://github.com/cxcyxqh71/OpenCV_Install_Files/tree/main/opencv_contrib_patch),并复制到opencv_contrib/modules/xfeatures2d/src/目录下

4.”/usr/bin/ld: /usr/local/lib/libgflags.a(gflags.cc.o):relocation R_X86_64_32S against“
gflags源码安装的解决办法:进入gflags/build中,找到CMakeCache.txt
改为CMAKE_CXX_FLAGS:STRING=-fPIC
终端执行以下指令即可:
export CXXFLAGS=“-fPIC” && cmake … && make VERBOSE=1
sudo make -j6
sudo make install

参考其他博客
[1]: https://blog.csdn.net/csdn330/article/details/86747867
[2]: https://www.cnblogs.com/blueridge/p/9510177.html
[3]: https://www.it610.com/article/1306476197013655552.htm
[4]: https://www.cnblogs.com/cc111/p/9464962.html
[5]: https://docs.opencv.org/3.4.7/d7/d9f/tutorial_linux_install.html
[6]: https://zhuanlan.zhihu.com/p/48854990

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值