本人文章全都来源于我的公众号“当SLAM遇见小王同学”,欢迎交流学习,声明一下,本人不接公众号推广、涨粉、增加阅读量、广告营销等,安安心心搞技术!看见直接拉黑!
安装依赖
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy python3-dev python3-numpy sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
可能在Ubuntu18.04中已经默认安装好了,可自己提前检验一下。
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
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 # 处理图像所需的包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
sudo apt-get install ffmpeg
出现下面类似错误E: unable to locate libjasper-dev
,运行以下命令.
sudo apt-get install software-properties-common
sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"
sudo apt update
sudo apt install libjasper1 libjasper-dev
搞定!
源码编译
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
新建build文件夹,进入终端,编译支持英伟达GPU加速的OpenCV:
cmake
-D CMAKE_BUILD_TYPE=RELEASE
-D OPENCV_GENERATE_PKGCONFIG=ON
-D CMAKE_INSTALL_PREFIX=/usr/local
-D OPENCV_EXTRA_MODULES_PATH= /路径/opencv_contrib/modules
-D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so
-D CUDA_ARCH_BIN=xx 这个需要去英伟达官网查询
-D CUDA_ARCH_PTX=""
-D WITH_CUDA=ON
-D WITH_TBB=ON
-D BUILD_NEW_PYTHON_SUPPORT=ON
-D WITH_V4L=ON
-D INSTALL_C_EXAMPLES=ON
-D INSTALL_PYTHON_EXAMPLES=ON
-D BUILD_EXAMPLES=ON
-D WITH_QT=ON
-D WITH_OPENGL=ON
-D ENABLE_FAST_MATH=1
-D CUDA_FAST_MATH=1
-D WITH_CUBLAS=1
-D WITH_NVCUVID=ON
-D BUILD_opencv_cudacodec=OFF ..
OpenCV4默认不生成.pc文件,OPENCV_GENERATE_PKGCONFIG=ON才会生成。其余就是CUDA的开启配置了。
编译
sudo make -j7
sudo make install
之后就是配置c++了,先在/etc/ld.so.conf.d/文件夹下新建一个opencv4.conf,里面写入/usr/local/lib。
cd /etc/ld.so.conf.d/
sudo touch opencv4.conf
sudo sh -c 'echo "/usr/local/lib" > opencv4.conf'
更新pkg-config:
sudo ldconfig
之后可以在终端输入pkg-config --libs opencv4
和pkg-config --cflags opencv4
检验一下
OpenCV的卸载
删掉opencv4.conf文件,再在你编译的文件夹(我的是release)下运行sudo make uinstall即可。