ubuntu20.04下多版本opencv共存和切换

这篇具有很好参考价值的文章主要介绍了ubuntu20.04下多版本opencv共存和切换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前在ubuntu20.04系统上已经安装了opencv4.5.5和扩展库opencv_contrib4.5.5,但是最近需要跑一下PL-SLAM的源代码,而PL-SLAM系统是基于opencv3.x.x开发的,直接运行会出现很多opencv版本不兼容的问题。因此想再安装opencv3.4.5和扩展库opencv_contrib3.4.5,过程中出现了很多问题,写这篇文章记录一下。

一、下载和安装依赖包

1、首先更新 apt-get,在安装前最好先更新一下系统,不然有可能会安装失败。在终端输入:

sudo apt-get update
sudo apt-get upgrade

2、接着安装官方给的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

二、下载opencv3.4.5和opencv_contrib3.4.5源码压缩包

1、opencv3.4.5的下载地址:
https://github.com/opencv/opencv/releases

2、opencv_contrib3.4.5的下载地址:
https://github.com/opencv/opencv_contrib/tree/3.4.5

三、配置opencv

1、将OpenCV3.4.5和OpenCV_contrib3.4.5解压(提取),放在一个文件夹下,如下图所示:
ubuntu20.04下多版本opencv共存和切换2、双击进入解压出来的opencv-3.4.5文件夹,右键打开终端(或者在别处打开终端,通过输入cd opencv-3.4.5进入当前目录下),然后依次输入(不要忘了第三行的最后的空格和两个点):

mkdir build
cd build 
cmake-gui .. 

3、然后会弹出CMake的图形化界面,在上方的两个路径里面,选择好代码所在文件夹的路径和要安装的路径:
ubuntu20.04下多版本opencv共存和切换
4、点击左下方的Configure按钮,选择Unix Makefiles,选择Use default native compilers(默认),然后点击Finish:
ubuntu20.04下多版本opencv共存和切换
5、需要下载一些文件,要等待一段时间。可能由于网络原因下载失败,导致boostdesc_bgm.i等文件缺失,因此要手动下载缺失的文件,然后将以下文件:

boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i

拷贝到opencv_contrib/modules/xfeatures2d/src/目录下,如图:
ubuntu20.04下多版本opencv共存和切换百度云链接:https://pan.baidu.com/s/1BeYF8kqEZLAJYQj-MvxpmA
提取码:e1wc
6、再次点击左下方的Configure按钮,然后CMake即载入默认配置,这里通过图形界面的方式来进行配置,更加直观方便。
这里需要对三个地方进行修改:
(1)在CMAKE_BUILD_TYPE 值处输入RELEASE,其他保持不变(如果已经存在就不必修改)。
(2)下方的CMAKE_INSTALL_PREFIX显示了默认的安装目录,默认安装到usr/local目录下,生成makefile文件最后执行 make install时就会安装到这个目录。但是由于之前已经安装了opencv4.5.5,如果不修改默认路径会将之前的opencv4.5.5覆盖掉,因此在~/opencv3.4.5/opencv-3.4.5/build文件夹下新建一个installed文件夹,并将opencv3.4.5安装到此路径下。
ubuntu20.04下多版本opencv共存和切换修改CMAKE_INSTALL_PREFIX的默认安装目录为~/opencv3.4.5/opencv-3.4.5/build/installed
ubuntu20.04下多版本opencv共存和切换
(3)在OPENCV_EXTRA_MODULES_PATH处,选择opencv_contrib3.4.5扩展库的输入目录(单击这一行后方空白处即可选中)然后选择opencv_contrib-3.2.0文件夹中的modules文件夹,注意,不是只选中opencv_contrib-3.2.0文件夹就好了,需要选中里面的modules文件夹! 如下图所示,然后点Choose。
注:OPENCV_EXTRA_MODULES_PATH 是用来指定要编译的扩展模块,其中包括OpenCV_contrib模块。
ubuntu20.04下多版本opencv共存和切换ubuntu20.04下多版本opencv共存和切换
7、点击Generate生成配置文件,这一步应该比较快就完成了。
8、接着,在build目录下打开终端,输入:

make -j4

此时报错:

原因是ceres版本过高与opencv3.4.5不兼容,原来安装的版本是ceres2.2.0,因此再重新安装ceres1.14.0,并像之前步骤那样使用cmake-gui命令修改ceres1.14.0的安装路径使其不覆盖原来的ceres。如果不想那么麻烦,可以卸载原有的ceres重新安装。

重新安装ceres后,重新按照上述步骤配置opencv,然后在build目录下打开终端,输入:

make -j4

编译成功之后,再输入

sudo make install

之后便能成功安装opencv3.4.5。

参考博客:https://blog.csdn.net/jindunwan7388/article/details/80397700

三、配置环境变量

1、安装成功后还需要设置opencv的环境变量。打开文件:

sudo gedit /etc/ld.so.conf.d/opencv.conf

2、将opencv3.4.5库文件的路径添加到环境变量中,将以下内容添加到最后::

/home/xqs/3rdparty/opencv3.4.5/opencv-3.4.5/build/installed/lib

3、接下来配置库:

sudo ldconfig

4、更改环境变量:

sudo gedit /etc/bash.bashrc

5、在文件后添加:

export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/home/xqs/3rdparty/opencv3.4.5/opencv-3.4.5/build/installed/lib/pkgconfig
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/xqs/3rdparty/opencv3.4.5/opencv-3.4.5/build/installed/lib

6、更新~/.bashrc

source ~/.bashrc 

7、查询OpenCV版本

pkg-config --modversion opencv

如果输出3.4.5,就表明配置成功。
如果想使用之前的版本,在~/.bashrc中注释掉增加的内容,然后source ~/.bashrc即可。

四、多版本opencv的切换

如果只有一个版本的OpenCV,在CMakeList.txt中使用以下语句即可。在OpenCV编译好后,所在目录中会生成OpenCVConfig.cmake文件,这个文件中指定了CMake要去哪里找OpenCV,其.h文件在哪里等。 这种情况适用于只有一个版本的opencv,安装在默认路径下,一般是/usr/local/lib下,比如我的opencv4.4.5, 因为安装的时候如果不指定prefix路径,那么在make install 时会将所有的 .so 文件安装在 /usr/local/lib 下,所有的头文件安装在/usr/include下。

FIND_PACKAGE(OpenCV REQUIRED)

但是这里我们对opencv3.4.5的安装指定了路径,所以,如果想要使用opencv3.4.5,则需要在find_package之前设定cmake的查找路径,也就是让cmake去"/home/xqs/3rdparty/opencv3.4.5/opencv-3.4.5/build/installed"找opencv;

set(CMAKE_PREFIX_PATH "/home/xqs/3rdparty/opencv3.4.5/opencv-3.4.5/build/installed")

这里需要赘述的是,find_package 其实寻找的是OpenCVConfig.cmake文件,打开这个文件就能看到当前opencv所对应的版本,同时也对一些路径进行了定义,类似于c++中的宏的感觉,尤其是:OpenCV_LIBS OpenCV_INCLUDE_DIRS 两个路径,这就保证了cmake可以正常找到opencv所需要的头文件和库文件;

因此也就有了第三种包含opencv的方法,就是直接设定这两个路径,OpenCVConfig.cmake文件的路径为/home/xqs/3rdparty/opencv3.4.5/opencv-3.4.5/build/installed/share/OpenC

set(OpenCV_DIR "/home/xqs/3rdparty/opencv3.4.5/opencv-3.4.5/build/installed/share/OpenCV")
find_package(OpenCV 3.4.5 REQUIRED COMPONENTS core highgui imgproc flann calib3d)  
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

参考博客:https://blog.csdn.net/qq_25458977/article/details/103931360

五、卸载ceres

Ceres只有一个库文件在"/usr/local/lib"中,并且所有头文件都在"/usr/local/include/ceres"中

sudo rm -r /usr/local/lib/cmake/Ceres
sudo rm -r /usr/local/include/ceres /usr/local/lib/libceres.a

六、安装Ceres

1、 安装依赖库:

sudo apt-get install liblapack-dev libsuitesparse-dev libgflags-dev 
sudo apt-get install libgoogle-glog-dev libgtest-dev
sudo apt-get install libcxsparse3

2、下载ceres-solver-1.14.0

wget ceres-solver.org/ceres-solver-1.14.0.tar.gz

3、解压

tar -zxvf ceres-solver-1.14.0.tar.gz

4、编译安装ceres文章来源地址https://www.toymoban.com/news/detail-478280.html

sudo mkdir build
cd build
sudo cmake ..
sudo make -j4
sudo make install

到了这里,关于ubuntu20.04下多版本opencv共存和切换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu20.04安装c++版本的OpenCV

    https://www.jianshu.com/p/3c2fc0da7398 https://docs.opencv.org/4.5.3/d7/d9f/tutorial_linux_install.html https://www.jianshu.com/p/3c2fc0da7398 https://www.cnblogs.com/yongy1030/p/10293178.html 其实官网步骤已经非常清楚了,只不过是英文的,可能有小伙伴看不下去,所以不妨看看这篇博客。 进入官网,选择你要下载的

    2024年02月12日
    浏览(38)
  • 【Ubuntu 20.04LTS系统】安装CUDA11.8、cuDNN,可进行CUDA版本切换

    https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ 更新软件列表和必要的依赖项 步骤一: 下载CUDA安装包 进行CUDA和cuDNN的选择,也可以直接根据官方推荐进行下载安装。 从Nvidia官网下载CUDA https://developer.nvidia.com/cuda-downloads 下方链接,选择更多版本 https://developer.nvidia.com/cuda-toolkit-archiv

    2024年02月16日
    浏览(64)
  • Ubuntu20.04同时安装ROS1和ROS2共存

    每版的Ubuntu系统版本都有与之对应ROS版本的,每一版ROS都有其对应版本的Ubuntu版本,不可随便装,ubuntu20.04对应ROS1 noetic和ROS2 foxy ROS2 Galactic版本。当然最方便的是使用鱼香ROS一键安装: 但我们接下来使用手动安装。 老规矩,先换源 打开软件更新 选择Download from-Other,找到C

    2024年02月08日
    浏览(43)
  • 【已解决】Ubuntu 20.04 编译OpenCV 动态链接库指向版本不一致导致出错

    问题:编译OpenCV 4.8.1, 显示出错: /usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference to `ffi_type_uint32@LIBFFI_BASE_7.0\\\' /usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference to `ffi_type_sint32@LIBFFI_BASE_7.0\\\' /usr/bin/ld: /lib/x86_64-linux-gnu/libwayland-client.so.0: undefined reference to

    2024年02月04日
    浏览(36)
  • Ubuntu20.04 系统安装多个版本的 JDK【多版本jdk切换:sudo update-alternatives --config java】

    目前Java版本更新很快,每半年推出一个版本,因此我们可能需要在自己的电脑上安装不同版本的JDK,以便于我们学习使用,本文主要介绍了在Ubuntu18.04系统上安装JDK(OpenJDK 、 Oracle JDK)以及管理不同版本JDK(JDK1.8、JDK9、JDK10等)的方法。 第一种:安装系统自带的 OpenJDK 因为

    2024年02月09日
    浏览(61)
  • Ubuntu 20.04 LTS 系统下 安装Nvidia 显卡驱动、CUDA、cuDNN, 并可进行CUDA版本切换

    因为做深度学习的研究项目,为全新机器在Ubuntu 20.04 LTS 系统下 安装Nvidia 显卡驱动、Cuda、Cudnn。并进行CUDA版本切换 成功安装完成了,写个记录。 步骤一: 安装更新软件列表和依赖项 在安装Nvidia显卡驱动之前,需要更新软件列表和必要的依赖项。 步骤二: 查看GPU型号,并

    2024年02月13日
    浏览(63)
  • 超详细教程——Ubuntu20.04 安装英伟达NVIDIA显卡驱动、CUDA、Cmake以及不同版本的CUDA切换

    在windows和linux双系统下,为ubuntu安装nvidia、cuda、cmake等程序是一个可能会难到各个计算机小白的问题,本文将一步步地带您学会安装以上内容。 一、安装英伟达NVIDIA显卡驱动 对于新安装的linux操作系统,我们需要为它安装nvidia显卡驱动(ubuntu有自带的显卡驱动但更推荐安装

    2024年02月02日
    浏览(52)
  • 【SLAM实战篇】Ubuntu 20.04版本(OpenCV版本4.5.3)对于ORB-SLAM2安装运行,代码编译,自己的数据集构造

    学完SLAM十四讲 心血来潮想跑一下ORB-SLAM2的代码,纯新手小白,自己的踩坑经历进行整理: 本文章主要对ORB-SLAM2进行编译运行。以及自己构建数据集。 源码github地址:https://github.com/raulmur/ORB_SLAM2 终端克隆代码: 查看源代码,其重要的代码库仅为三个文件夹: Example include s

    2024年03月13日
    浏览(52)
  • Ubuntu20.04切换阿里源镜像(清华源、网易源)

    1.查看Ubuntu版本: 显示结果如下: 2.备份系统镜像源文件 备份配置文件,当配置出错时,可以回滚,ubuntu镜像配置文件是:/etc/apt/sources.list,执行下面命令进行备份。 3.使用vi修改 sources.list 文件 使用命令::%d 清空文件所有内容 复制下面的源镜像到文件中,选择其中一个源镜

    2024年02月16日
    浏览(59)
  • Ubuntu20.04安装OpenCV

    开源计算机视觉(OpenCV)是一个主要针对实时计算机视觉的编程函数库。 OpenCV的应用领域包括:2D和3D功能工具包、运动估计、面部识别系统、手势识别、人机交互、移动机器人、动作理解、物体识别、分割和识别、实体影像立体视觉:来自两个摄像机的深度感知、运动跟踪、增强

    2023年04月09日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包