一、安装的大致步骤
- 在
/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)