我前面autoware1.14安装记录的博文已经记录过,这里为了方便我把这一部分单独拎出来
1.安装包下载
前往OpenCV官网https://opencv.org/releases/,选择3.4.10版本,点击source或者github下载,这里我选择github下载,下载完成后解压。
2.opencv_contrib下载
前往https://github.com/opencv/opencv_contrib,选择与opencv对应的版本。这里我的是3.4.10版本。
两个文件都下载完成后,把opencv_contrib放到解压后opencv文件夹里面。
3.安装依赖
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
4.安装
在opencv-3.4.10文件夹下新建build文件夹
cd opencv-3.4.10
mkdir build
在build路径下cmake编译
//注意将DOPENCV_EXTRA_MODULES_PATH路径改成自己的
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DINSTALL_PYTHON_EXAMPLES=ON -DINSTALL_C_EXAMPLES=OFF -DOPENCV_EXTRA_MODULES_PATH=/home/car/opencv-3.4.10/opencv_contrib-3.4.10/modules -DPYTHON_EXCUTABLE=/usr/bin/python2.7 -DWITH_CUDA=ON -DWITH_CUBLAS=ON -DDCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -DCUDA_ARCH_BIN="6.1" -DCUDA_ARCH_PTX="" -DCUDA_FAST_MATH=ON -DWITH_TBB=ON -DWITH_V4L=ON -DWITH_GTK=ON -DWITH_OPENGL=ON -DCMAKE_C_COMPILER=/usr/bin/gcc-7 -DCUDA_HOST_COMPILER=/usr/bin/g++-7 -DCUDA_PROPAGATE_HOST_FLAGS=oFF -DCMAKE_CXX_FLAGS="-std=c++11" -DBUILD_TIFF=ON -DBUILD_EXAMPLES=ON ..
注意:需要修改为自己的opencv的路径。
然后进行make编译
sudo make -j8
出现以下报错:
问题一:fatal error:nvcuvid.h: No such file or directory
解决方法:
下载NVIDIA-SDK,下载地址:https://developer.nvidia.com/designworks/video_codec_sdk/downloads/v8.2-ga2。或者去csdn上面找现成的包(可能需要会员)
下载完成之后解压缩,文件路径Video_Codec_SDK_8.2.16->Samples->NvCodec->NvDecoder,将其中的nvcuvid.h, cuviddec.h连个文件copy到/usr/local/cuda/include/中,终端中输入指令
sudo cp nvcuvid.h /usr/local/cuda/include
sudo cp cuviddec.h /usr/local/cuda/include
终端中输入指令进入报错提醒的文件目录中
cd /home/car/opencv-3.4.10/modules/cudacodec/src/
gedit precomp.hpp
将文件中的
#if CUDA_VERSION >= 9000
#include <dynlink_nvcuvid.h>
#else
#include <nvcuvid.h>
#endif
改为
#if CUDA_VERSION >= 9000 && CUDA_VERSION < 10000
#include <dynlink_nvcuvid.h>
#else
#include <nvcuvid.h>
#endif
参考链接:https://www.freesion.com/article/68371362181/
问题二:fatal error:boostdesc_bgm.i: No such file or directory
解决方法:
下载boostdesc_bgm.i等文件,并将其移动到opencv_contrib_3.4.10/modules/xfeatures2d/src目录下
参考链接:https://www.cnblogs.com/pine-apple/p/13176741.html
问题三:fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
解决方法:
将opencv_contrid-3.4.10/modules/xfeatures2d/include/opencv2下的xfeatures2d文件夹和xfeatures2d.hpp拷贝到opencv-3.4.10/modules/stitching/include/opencv2目录下,和stitching文件夹并列。
问题四:fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory
解决方法:
打开/home/car/opencv3.4.10/samples/gpu/surf_keypoint_matcher.cpp
将红色引号的报错内容改为绝对路径
问题五:CMakeFiles/example_gpu_surf_keypoint_matcher.dir/surf_keypoint_matcher.cpp.o: In function `main’:
解决方法:
打开如下路径下的link.txt
/home/car/opencv-3.4.10/build/samples/gpu/CMakeFiles/example_gpu_surf_keypoint_matcher.dir/link.txt
在如下位置加入
../../modules/xfeatures2d/CMakeFiles/opencv_xfeatures2d.dir/src/surf.cuda.cpp.o
参考链接:https://github.com/opencv/opencv/issues/9949
最后再次编译,成功!
最后安装
sudo make install
5.添加路径
打开文件
sudo gedit /etc/ld.so.conf
在文件中添加如下代码
/usr/loacal/lib
保存并关闭,运行下面的指令
sudo ldconfig
6.环境的配置
将以下两行添加到./bashrc文件中
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
输入以下命令,查看所安装的opencv版本
pkg-config opencv --modversion
安装成功!