ubuntu下安装opencv3.4.1+opencv4.2.0

记录ubuntu下安装opencv3.4.1和open4.2.0,并在使用时指定调用的对应版本的过程。
1.在/usr/locla/目录下新建opencv3.4.1和opencv4.2.0两个文件夹,等下将3.4.1和4.2.0分别安装在这两个目录下。

cd /usr/local/
mkdir opencv3.4.1
mkdir opencv4.2.0

2.安装opencv3.4.1(直接以我安装的过程为例,需要根据自己的opencv和opencv_contrib放置的位置来修改相应的路径)

cd ~/Desktop/opencv-3.4.1/
mkdir build
cd build
sudo cmake -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.4.1 -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D CMAKE_LIBRARY_PATH=/usr/local/cuda-10.0/lib64/stubs -D OPENCV_EXTRA_MODULES_PATH=~/Desktop/opencv_contrib-3.4.1/modules -D CUDA_CUDA_LIBRARY=/usr/local/cuda-10.0/lib64/stubs/libcuda.so ..

其中:
-D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.4.1指定到我们刚刚新建的安装位置
-D OPENCV_EXTRA_MODULES_PATH=~/Desktop/opencv_contrib-3.4.1/modules 指定到opencv_contrib-3.4.1/modules的位置

3.编译安装

sudo make -j8
sudo make install

4.安装opencv4.2.0

cd ~/Desktop/opencv-4.2.0/
mkdir build
cd build
sudo cmake -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.2.0 -D OPENCV_ENABLE_NONFREE=ON -D WITH_CUDA=ON -D WITH_CUDNN=ON -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_DNN_CUDA=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 -D CUDA_ARCH_BIN=6.1 -D WITH_CUBLAS=1 -D OPENCV_EXTRA_MODULES_PATH=~/Desktop/opencv_contrib-4.2.0/modules -D HAVE_opencv_python3=ON -D CUDA_CUDA_LIBRARY=/usr/local/cuda-10.0/lib64/stubs/libcuda.so ..

其中:
-D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.2.0指定到我们刚刚新建的安装位置
-D OPENCV_EXTRA_MODULES_PATH=~/Desktop/opencv_contrib-4.2.0/modules定到opencv_contrib-3.4.1/modules的位置
-D OPENCV_GENERATE_PKGCONFIG=ON生成opencv.pc,opencv4.2.0默认不生成opencv.pc
-D CUDA_ARCH_BIN=6.1因为我需要使用opencv4.2.0的dnn模块,而且需要GPU加速,所以这里要根据自己电脑的GPU以及CUDA、CUDNN版本来配置,可参考:https://blog.csdn.net/broliao/article/details/104814937
5.编译安装

sudo make -j8
sudo make install

6.配置环境

sudo gedit /etc/ld.so.conf.d/opencv3.4.1.conf

写入:

/usr/local/opencv3.4.1/lib

保存退出
继续

sudo gedit /etc/ld.so.conf.d/opencv4.2.0.conf

写入:

/usr/local/opencv4.2.0/lib

保存退出
更新

sudo ldconfig

配置bash

sudo gedit /etc/bash.bashrc 

在末尾加入

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv3.4.1/lib/pkgconfig
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv4.2.0/lib/pkgconfig  
export PKG_CONFIG_PATH

更新

source /etc/bash.bashrc
sudo updatedb

7.编译C++文件
如果使用g++编译,指定opencv3.4.1和opencv4.2.0命令分别如下:

g++ opencv.cpp -o opencv `pkg-config --cflags --libs opencv`                           #opencv3.4.1
g++ opencv.cpp -o opencv `pkg-config --cflags --libs opencv4`                        #opencv4.2.0

如果通过CMakelists.txt编译,可在CMakelists.txt中指定版本:

SET(OpenCV_DIR /usr/local/opencv3.4.1/share/OpenCV)
find_package(OpenCV REQUIRED)                                                                                   #opencv3.4.1           


SET(OpenCV_DIR /usr/local/opencv4.2.0/share/OpenCV)
find_package(OpenCV REQUIRED)                                                                                  #opencv4.2.0

你可能感兴趣的:(ubuntu下安装opencv3.4.1+opencv4.2.0)