linux安装多个版本的opencv并切换使用

一、安装的大致步骤

  • /usr/local/下新建opencv版本的路径,比如这里安装opencv-3.4.8,那么就在这个路径下建立opencv-3.4.8的文件夹。注意要使用命令行然后sudo建立
  • 把下载的opencv-3.4.5.zip文件夹解压到自己的一个库文件目录下,比如是~/myLibs,然后在文件夹下新建build文件夹,为后面编译使用。
  • 这里为了后面使用方便,建议安装的时候一并把contrib模块一起安装上。首先到github上下载对应版本的contrib模块,然后解压到上一步解压出来的opencv-3.4.5文件夹下。
  • 设置CMAKE_INSTALL_PREFIX=/usr/local/opencv-3.4.8;选择OPENCV_EXTRA_MODULES_PATH=~/myLibs/opencv-3.4.5/opencv_contrib-3.4.8/modules/安装contrib,注意是contrib下面的modules,不是contrib;选择OPENCV_ENABLE_NONFREE=True使用非免费的模块。

大致命令如下所示:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/opencv-3.4.8(设置安装的位置)
-DOPENCV_EXTRA_MODULES_PATH=/home/guojun/opencv-3.4.8.bak/opencv_contrib-3.4.8/modules/(增加额外模块位置)
-DOPENCV_ENABLE_NONFREE=True(允许使用非免费的模块) ..

二、多个版本的切换

        其实就是设置自己的环境变量,需要什么版本就设置什么样的环境变量;

sudo gedit /etc/ld.so.conf.d/opencv.conf
#  在文件末尾添加下面语句
/usr/local/opencv-3.4.8/lib
# 执行生效
sudo ldconfig

export PKG_CONFIG_PATH=/usr/local/opencv-3.4.8/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv-3.4.8/lib
source ~/.zshrc
sudo updatedb

三、使用不同版本的opencv

cmake_minimum_required(VERSION 2.8)  
#其實如果在.bashrc中设置了环境变量效果是一样的
set(OpenCV_DIR /usr/local/opencv_3.4.13/share/OpenCV)
project(test)  
find_package(OpenCV REQUIRED) 
include_directories(${OpenCV_INCLUDE_DIRS})

在OpenCV编译好后,所在目录中会生成OpenCVConfig.cmake文件,这个文件中指定了CMake要去哪里找OpenCV,其.h文件在哪里等。
存在多版本OpenCV时,需要找到所需版本对应的OpenCVConfig.cmake文件,并将其路径添加到工程的CMakeLists.txt中。网上有些教程不怎么对,我们需要设置OpenCVConfig-version.cmake所在的位置

set(OpenCV_DIR /usr/local/opencv_3.4.13/share/OpenCV)

你可能感兴趣的:(opencv,linux,ubuntu)