ubuntu中opencv3.4.0与opencv_contrib库的配置(实测有效)

在拿到了一台Inter的realsense后,准备在ubuntu中使用Ros加realsense做一些工作,但是由于Ros在初始化中有问题,所以准备使用qt加opencv,因此在此写下opencv与opencv_contrib库的配置,前面写过win10下的配置,可以移步https://blog.csdn.net/weixin_45154431/article/details/104539849。
其中也有opencv_contrib扩展库的下载,我的电脑中与版本无关(将文件夹放在opencv3.4.0文件夹中)

1、首先安装一些编译工具

# 安装编译工具
sudo apt-get install build-essential
# 安装依赖包
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
# 安装可选包
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

2、下载opencv

3、编译安装

# 打开文件夹:
cd opencv-3.4.0
# 新建一个文件夹用于存放临时文件:
mkdir build
# 切换到该临时文件夹:
cd build
# 开始编译:
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \       -D INSTALL_C_EXAMPLES=ON \       -D INSTALL_PYTHON_EXAMPLES=OFF \       -D WITH_CUDA=OFF \       -D WITH_TBB=ON \       -D OPENCV_ENABLE_NONFREE=ON \       -D WITH_OPENGL=ON \       -D WITH_OPENMP=ON \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib_master/modules \       -D BUILD_EXAMPLES=ON ..   -DBUILD_TESTS=OFF
# make一下
make -j16   
# 开启线程 按照自己的配置
sudo make install

问题解决:

在cmake后有可能出现ippicv文件在联网情况无法下载的问题

IPPICV: Download: ippicv_2017u3_lnx_intel64_general_20170822.tgz

请移步到github页面下载该文件夹
https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20170822/ippicv

(每个人缺失的版本可能不同,最好还是找到适合自己的)

在文件夹中创建

/home/memory/下载/opencv-3.4.0/3rdparty/ippicv/downloads/linux-d41d8cd98f00b204e9800998ecf8427e/

大家应该将路径中memory改为自己计算机的名字(看着前面的路径找一下,在第三方库的ippicv中新建文件夹)

有时在make时会出现

[ 14%] Built target opencv_perf_cudacodec_pch_dephelp
Scanning dependencies of target opencv_features2d_pch_dephelp
Scanning dependencies of target opencv_perf_calib3d_pch_dephelp
In file included from /home/memory/下载/opencv-3.4.0/build/modules/cudacodec/opencv_cudacodec_pch_dephelp.cxx:1:0:
/home/memory/下载/opencv-3.4.0/modules/cudacodec/src/precomp.hpp:60:37: fatal error: dynlink_nvcuvid.h: 没有那个文件或目录
compilation terminated.
[ 14%] Building CXX object modules/features2d/CMakeFiles/opencv_perf_features2d_pch_dephelp.dir/opencv_perf_features2d_pch_dephelp.cxx.o
[ 14%] Building CXX object modules/features2d/CMakeFiles/opencv_features2d_pch_dephelp.dir/opencv_features2d_pch_dephelp.cxx.o
modules/cudacodec/CMakeFiles/opencv_cudacodec_pch_dephelp.dir/build.make:62: recipe for target 'modules/cudacodec/CMakeFiles/opencv_cudacodec_pch_dephelp.dir/opencv_cudacodec_pch_dephelp.cxx.o' failed
make[2]: *** [modules/cudacodec/CMakeFiles/opencv_cudacodec_pch_dephelp.dir/opencv_cudacodec_pch_dephelp.cxx.o] Error 1
CMakeFiles/Makefile2:5280: recipe for target 'modules/cudacodec/CMakeFiles/opencv_cudacodec_pch_dephelp.dir/all' failed
make[1]: *** [modules/cudacodec/CMakeFiles/opencv_cudacodec_pch_dephelp.dir/all] Error 2
make[1]: *** 正在等待未完成的任务....
[ 14%] Building CXX object modules/calib3d/CMakeFiles/opencv_perf_calib3d_pch_dephelp.dir/opencv_perf_calib3d_pch_dephelp.cxx.o
[ 14%] Linking CXX static library ../../lib/libopencv_perf_features2d_pch_dephelp.a
[ 14%] Built target opencv_perf_features2d_pch_dephelp
[ 14%] Linking CXX static library ../../lib/libopencv_perf_calib3d_pch_dephelp.a
[ 14%] Built target opencv_perf_calib3d_pch_dephelp
[ 14%] Linking CXX static library ../../lib/libopencv_features2d_pch_dephelp.a
[ 14%] Built target opencv_features2d_pch_dephelp
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

这样的问题,哎,一到error就头疼,放心,有办法解决的

1、下载nvidia-sdk,地址:

https://developer.nvidia.com/designworks/video_codec_sdk/downloads/v8.2-ga2

将其中的nvcuvid.h, cuviddec.h copy 到 /usr/local/cuda/include/;

Ubuntu中移动文件到指定目录下注意事项:

cd /home/xxx/下载

移动文件到指定目录
在文件目录中输入“ls”可以查看文件夹中全部文件(或文件夹)

sudo mv '文件名' /home/xiongtong

2、将下面文件挨个找到

# opencv的modules目录下
modules/cudacodec/src/precomp.hpp
modules/cudacodec/src/frame_queue.hpp
modules/cudacodec/src/cuvid_video_source.hpp
modules/cudacodec/src/video_decoder.hpp
modules/cudacodec/src/video_parser.hpp

将上面的文件中的代码改为:

if CUDA_VERSION >= 9000 && CUDA_VERSION < 10000
   include <dynlink_nvcuvid.h>
else
   include <nvcuvid.h>
endif

该文章引用到的链接:
https://www.jianshu.com/p/d7ab56a5b3dc
https://blog.csdn.net/qq_37774171/article/details/87466608

你可能感兴趣的:(配置opencv扩展库,linux,cmake,opencv)