OpenCV多版本切换

本文详细指导如何在Linux系统中安装OpenCV,包括编译工具的安装、OpenCV源码下载、CMake配置、多版本共存与切换的注意事项。重点介绍了如何设置CMake选项、编译参数以及管理不同版本的OpenCV环境变量。
摘要由CSDN通过智能技术生成

一、安装编译工具和依赖项

温馨提示:

一般下载安装各种包优先:

sudo apt-get update

安装OpenCV依赖项

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

二、下载OpenCV源码并解压缩

温馨提示:

一般下载安装项目脚本尽量github克隆下来(完整性更高,修改方便,跑程序更是,血一般的教训!!!)

    cd ~
    git clone https://github.com/opencv/opencv.git
    cd opencv
    mkdir build
    cd build

三、使用CMake配置OpenCV的编译选项

默认安装cpu版本:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv_3.4.20 -D OPENCV_EXTRA_MODULES_PATH=/home/itheima/tools/OpenCV/opencv_3.4.20/opencv_contrib-3.4.20/modules -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_ENABLE_NONFREE=True .

默认安装gpu版本(后续有机会补充)原来学深度学习用的到,现在换方向搞slam,唉。。。

注意事项:

各个参数释义如下:

    CMAKE_BUILD_TYPE 是opencv安装的版本,Release和Debug两种可选,默认安装Release
    CMAKE_INSTALL_PREFIX 是opencv的安装地址 (不设置该参数默认安装在/usr/locol/...)

    强烈建议设置该参数CMAKE_INSTALL_PREFIX=/usr/local/opencv_----
    OPENCV_ENABLE_NONFREE 是否使用部分被申请了专利的计算方法 这里选True
    OPENCV_GENERATE_PKGCONFIG 是否开启生成.pc文件(可以指令查看版本)

    强烈建议设置该参数        opencv4版本及以上开启

注意事项:

    该指令在我的电脑上opencv-3.4.20、opencv-4.2.0、opencv-4.9.0构建成功。

    具体是否可行还要一一尝试!!!

四、编译OpenCV

    强烈建议编译之前先查看CPU的核心数:

nproc
16

    根据核心数来调整make指令的参数 x(建议不用堆满cpu缓存,可能会卡住)

make -j x
sudo make install

        其中,-j x指定使用x个线程进行编译。

        sudo make install    安装部署

五、添加到系统环境变量

gedit .bashrc

    增加如下内容到最下面

#OpenCV_3.4.20
export PKG_CONFIG_PATH=/usr/local/opencv_3.4.20/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv_3.4.20/lib

    刷新环境变量

source .bashrc

    查看opencv版本

pkg-config --modversion opencv   #查看3.x版本
pkg-config --modversion opencv4  #查看4.x版本


tips  list
        pkg-config --modversion opencv
        pkg-config --cflags opencv
        pkg-config --libs   opencv

六、OpenCV多版本共存与切换

在开发不同项目时可能会需要不同版本的OpenCV,在电脑上安装多个版本的OpenCV很有必要。

多版本切换关键是安装到不同路径,并在CMakeLists.txt中找到需要的版本。

在CMakeLists.txt中可设置手动寻找OpenCV的指定路径,如下:

set(OpenCV_DIR /usr/local/opencv_4.2.0/lib/cmake/opencv4)
find_package(OpenCV 4 REQUIRED)

注意事项:

    设置 set(OpenCV_DIR /usr/local/opencv_4.2.0/lib/cmake/opencv4)

    目的1:设置opencv路径的时候,主要是找有OpenCVConfig.cmake文件的文件夹,我的安装目录是上面那个,OpenCVConfig.cmake文件在上述路径中找到,因此添加这个路径。

    目的2:为了在构建或编译工程时避免libopencv与core.so发生冲突,致使编译失败。

如果不进行手动寻找OpenCV的指定路径的话,而只是自动寻找系统路径下配置的OpenCV的话,只需如下指令:
第一个表示自动寻找系统库里版本4以上的,第二个表示找系统库里的最低版本。

find_package(OpenCV 4 REQUIRED)
或者
find_package(OpenCV REQUIRED)

假设我们已经安装好一版OpenCV,一般都安装在/usr/local下。如果需要安装另一个版本的OpenCV,就不能再安装到/usr/local,而是选择其他路径,否则会覆盖掉之前的版本。

只需要在 .bashrc 文件中注释掉你当前不需要的版本(也就是每个版本对应的三行代码)

注意事项!!!

        当前不使用的版本请立即注释消去(ros安装会自带libopencv、版本不一致会冲突,会导致roscore失效—目前我发现的问题—)。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值