ubuntu18.04下opencv的安装配置以及不同版本opencv的切换

2023-05-16

一、安装OpenCV3.4.1

(如果是要跑ORB-SLAM2,建议用OpenCV 3.4.1 版本,不然之后会很麻烦,会出现不兼容问题)


(1)下载OpenCV 3.4.1

在OPenCV官网下载OpenCV 3.4.1 的source包然后解压到本地(下载链接http://opencv.org/releases.html,选择sources版本)

解压下载下来的zip包:(把压缩包放在你想要的位置,然后cd到该位置,解压即可)

unzip opencv-3.4.1.zip

进入到解压后的文件包中:

 cd opencv-3.4.1


(2)安装依赖项

安装依赖库和cmake ,如果提醒需要apt-get update,那就先sudo su进入root权限,再sudo apt-get update,然后在执行下面命令

 sudo apt-get install cmake  (这一步我们已经在步骤一(3)中安装过,就不用操作了)

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 libtiff5-dev libdc1394-22-dev

(处理图像所需的包)

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev

sudo apt-get install libxvidcore-dev libx264-dev

(处理视频所需的包)

sudo apt-get install libatlas-base-dev gfortran

(优化opencv功能)

sudo apt-get install ffmpeg


(3)编译安装

 cd opencv-3.4.1

mkdir build

cd build

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

(在中间会下载个东西,稍等一下就ok,没什么问题)

(如果已经在新的文件夹中编译,但是还会出现之前的报错,把cmakecache.txt删了再编译就可)

sudo make

(漫长的编译过程)

sudo make install


(4)配置环境,添加路径

sudo make install 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到:

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

执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加:

/usr/local/lib

如下图所示,点击保存即可:

执行如下命令使得刚才的配置路径生效:

sudo ldconfig

配置bash:

sudo gedit /etc/bash.bashrc

在最末尾添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH

如下图所示,点击保存即可:

保存,执行如下命令使得配置生效:

source /etc/bash.bashrc  

更新:

sudo updatedb


(5)安装完成,测试一下

至此所有的配置都已经完成,下面用一个小程序测试一下

找到,cd到opencv-3.4.1/samples/cpp/example_cmake目录下
我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下
按顺序执行

cd opencv-3.4.1/samples/cpp/example_cmake

cmake .

make

./opencv_example

即可看到打开了摄像头,在左上角有一个hello opencv
即表示配置成功,如下图所示:

二、安装 opencv3.2

我之前安装的是pencv3.4与openvins不兼容,需要重新换成3.2

(1)下载OpenCV 3.2.0

在OPenCV官网下载OpenCV 3.2.0 的source包然后解压到本地(下载链接http://opencv.org/releases.html,选择sources版本)

解压下载下来的zip包:(把压缩包放在你想要的位置,然后cd到该位置,解压即可)

unzip opencv-3.2.0.zip

进入到解压后的文件包中:

 cd opencv-3.2.0


(2)安装依赖项

安装依赖库和cmake ,如果提醒需要apt-get update,那就先sudo su进入root权限,再sudo apt-get update,然后在执行下面命令

 sudo apt-get install cmake

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 libtiff5-dev libdc1394-22-dev

(处理图像所需的包)

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev

sudo apt-get install libxvidcore-dev libx264-dev

(处理视频所需的包)

sudo apt-get install libatlas-base-dev gfortran

(优化opencv功能)

sudo apt-get install ffmpeg


(3)编译安装

 cd opencv-3.2.0

mkdir build

cd build

再记录一下自己现在是装了opencv3.4.1和opencv3.2.0,为了适应大佬们的算法,需要有不同的版本,在安装和使用时需要注意的是:
在安装cmake步骤时,需要额外设置安装后的路径,因为第一个版本默认安装在usr/local下的,第二个版本就不能重复了呀!手动新建文件夹,opencv320 ,在cmake时执行

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv320 -D ENABLE_PRECOMPILED_HEADERS=OFF ..

(在中间会下载个东西,稍等一下就ok,没什么问题)

如果出现下载不成功的问题

(1)报错1,及解决方案

 错误如下:

-- ICV: Downloading ippicv_linux_20151201.tgz...
CMake Error at 3rdparty/ippicv/downloader.cmake:73 (file):
  file DOWNLOAD HASH mismatch

    for file: [/home/aiko/opencv/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ippicv_linux_20151201.tgz]
      expected hash: [808b791a6eac9ed78d32a7666804320e]
        actual hash: [d41d8cd98f00b204e9800998ecf8427e]
             status: [35;"SSL connect error"]

Call Stack (most recent call first):
  3rdparty/ippicv/downloader.cmake:110 (_icv_downloader)
  cmake/OpenCVFindIPP.cmake:243 (include)
  cmake/OpenCVFindLibsPerf.cmake:37 (include)
  CMakeLists.txt:558 (include)


-- Configuring incomplete, errors occurred!
See also "/home/aiko/opencv/opencv-3.2.0/build/CMakeFiles/CMakeOutput.log".
See also "/home/aiko/opencv/opencv-3.2.0/build/CMakeFiles/CMakeError.log".


 

解决办法:

(由于网络原因,可能出现ippicv_linux_20151201.tgz(无法在终端下载的情况,则可以先单独下载ippicv_linux_20151201.tgz之后,把其移动到终端所提示的路径(终端会提示该路径找不到文件),如路径/home/aiko/opencv/opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/ippicv_linux_20151201.tgz
覆盖掉没有下载成功的文件即可。

之后继续执行:

sudo make

(漫长的编译过程)

sudo make install

 (2)报错2,及解决方案

报错如下:

In file included from /home/aiko/opencv/opencv-3.2.0/modules/core/src/hal_internal.cpp:49:0:
/home/aiko/opencv/opencv-3.2.0/build/opencv_lapack.h:2:10: fatal error: LAPACKE_H_PATH-NOTFOUND/lapacke.h: 没有那个文件或目录
 #include "LAPACKE_H_PATH-NOTFOUND/lapacke.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
modules/core/CMakeFiles/opencv_core.dir/build.make:522: recipe for target 'modules/core/CMakeFiles/opencv_core.dir/src/hal_internal.cpp.o' failed
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/src/hal_internal.cpp.o] Error 1
make[2]: *** 正在等待未完成的任务....
In member function ‘void cv::EigenvalueDecomposition::compute(cv::InputArray)’:
cc1plus: warning: assuming signed overflow does not occur when assuming that (X - c) > X is always false [-Wstrict-overflow]
CMakeFiles/Makefile2:1165: recipe for target 'modules/core/CMakeFiles/opencv_core.dir/all' failed
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

解决方法:

将错误所在的文件打开,在我的目录中是:

/home/aiko/opencv/opencv-3.2.0/build/opencv_lapack.h

把第二行修改为 #include "lapacke.h" 

保存即可,

之后继续执行:

sudo make

(如果已经在新的文件夹中编译,但是还会出现之前的报错,把cmakecache.txt删了再编译就可)

(4)更改默认opencv 配置环境,添加路径

sudo make install 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到:

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

执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加:

/usr/local/opencv320/lib

点击保存即可

执行如下命令使得刚才的配置路径生效:

sudo ldconfig

配置bash:

sudo gedit /etc/bash.bashrc

在最末尾添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH://usr/local/opencv320/lib/pkgconfig  
export PKG_CONFIG_PATH

点击保存即可

保存,执行如下命令使得配置生效:

source /etc/bash.bashrc  

更新:

sudo updatedb

三、更改opencv默认版本

上一步是在更改默认使用哪一个opencv库,如果想换回opencv3.4 ,重复步骤(4)更改默认opencv 配置环境,添加路径即可

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu18.04下opencv的安装配置以及不同版本opencv的切换 的相关文章

随机推荐

  • 无人机集群学习

    natnet sdk4 0 学习 中文介绍 xff1a NatNet SDK Wiki 示例工程 xff1a NatNet Sample Projects NaturalPoint Product Documentation Ver 2 2
  • Nginx证书管理

    一 下载证书到本地 Nginx服务器上传 管理SSL证书 xff0c 将SSL证书压缩包下载到本地后 xff0c 加压Nginx服务器证书的压缩包文件 cert file name pem PEM格式的证书文件 xff0c PEM格式的证书
  • 【ESP32】arduino中的ESP32实时系统FreeRTOS使用教程(一)

    ESP32 FreeRTOS 任务的状态任务的优先级 创建任务传递给任务函数的参数结构体多参数传递互斥量MutexESP32的双核心固定频率运行任务软件定时器 简单的本节略过 xff0c 详细的可以看视频 xff1a 单片机ESP32上的F
  • Linux系统下GDB调试及opencv的使用

    Linux系统下GDB调试及opencv的使用 一 GDB的简介二 GDB的作用三 GDB的使用1 GDB调试举例2 段错误调试3 内存出错的gdb调试 四 安装opencv 3 4 11 下载opencv 3 4 12 解压3 编译4 配
  • Linux下vscode的配置与使用、proteus仿真运行stm32程序、Altium Designer18绘制STM32最小系统原理图

    Linux下vscode的配置与使用 proteus仿真运行stm32程序 Altium Designer18绘制STM32最小系统原理图 一 Linux下vscode的配置与使用1 安装vscode2 安装c 43 43 插件3 配置4
  • stm32f103核心板串口通信入门

    stm32f103核心板串口通信入门 一 基于寄存器与基于固件库编程方式的差异二 stm32串口通信1 前期准备硬件软件连接 2 编写程序并烧录设计程序烧录程序 三 总结 一 基于寄存器与基于固件库编程方式的差异 使用固件库 xff0c 目
  • Requirement already satisfied 的解决办法

    问题描述 xff1a 安装的时候出现Requirement already satisfied xff1a areadly exist 公司环境是需要dfmanager创建一个python36虚拟环境 xff0c 当在虚拟环境中使用pyth
  • 基于FreeRTOS的STM32多任务程序

    基于FreeRTOS的STM32多任务程序 一 材料准备二 FreeRTOS移植FreeRTOS是什么FreeRTOS移植到STM32上 MDK开发环境 1 下载FreeRTOS源代码2 前期准备3 手动移植RreeRTOS 程序的编写运行
  • STM32实现基于I2C的AHT20温湿度采集

    STM32实现基于I2C的AHT20温湿度采集 I2C通信协议软件I2C与 硬件I2C代码实现烧录硬件连接烧录并运行 参考 I2C通信协议 I2C协议简介 IC Inter Integrated Circuit xff09 总线是一种由 P
  • 计算机网络中Wireshark的简单使用与分析

    Wireshark应用实验 数据链路层网络层传输层TCP 和 UDP 段结构分析 TCP 建立和释放连接 应用层 数据链路层 熟悉 Ethernet 帧结构 其中 xff1a ff ff ff ff ff ff 接受计算机的MAC地址 xf
  • 计算机网络CPT简单应用

    计算机网络CPT简单应用 直接连接两台 PC 构建 LAN用交换机构建 LAN交换机接口地址列表生成树协议 xff08 Spanning Tree Protocol xff09 路由器配置初步 直接连接两台 PC 构建 LAN 将两台 PC
  • HTML入门学习

    HTML入门学习 一 软件准备及配置二 HTML入门学习1 HTML2 HTML文件结构及分析3 标题及文本格式4 超链接 图片与文件路径5 表格 列表及表单6 区块元素 内联元素 预设格式及特殊字符 三 总结与心得 一 软件准备及配置 所
  • CSS初步学习

    CSS初步学习 一 CSS二 CSS语法及生效方式三 三种样式 amp 颜色 尺寸与对齐四 BOX amp 边框与边距五 定位 amp 溢出六 浮动 amp 设置不透明度七 组合选择器 amp 伪类和伪元素八 总结 使用CSS需用到VS C
  • 《通信软件开发与应用》课程结业报告

    正在写 xff0c 12点之前肯定提交 xff0c 不要急 xff0c 老师 xff08 坚定的目光 xff09
  • printf函数的重定向

    为什么要重定向printf函数 xff1f printf函数是底层函数 xff0c 含于stdio h头文件 因为在C语言中printf函数已经定义为默认输出到显示器的 xff0c 若要想在串口上显示 xff0c 那就需要重定向printf
  • 利用蜂鸣器播放音乐

    我们知道 xff0c 蜂鸣器可分为有源蜂鸣器和无源蜂鸣器 xff0c 有源蜂鸣器内置了频率发生电路 xff0c 因此其通电就能够发出声音 xff0c 但是其频率是固定的 xff0c 而无源蜂鸣器内部没有频率发生电路 xff0c 需要外界给予
  • 关于Ubuntu18.04虚拟机连不上网的问题

    1 问题详情 尝试过桥接模式和NAT模式的设置但并没有解决问题 2 问题原因 网络设置过程有问题 3 解决问题 1 关闭当前虚拟机 xff0c 并按照下列截图在虚拟机设置里打开网络适配器 点击确认 2 选择编辑下的虚拟网络编辑器 3 重新开
  • WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.

    出现以下问题 解决办法 python m 会指定你当前使用的python版本 python m pip install pyreadline xff08 包名 xff09 安装成功 xff01
  • 大疆M3508电机分电板PCB及打板记录

    1 所需物品 已经完成的电路板4个xt30的航模公头接口1个xt60的航模母头接口1个xt60的航模公头接口5个GH1 25立贴母座 xff08 2Pin xff09 关于PCB文件转成G文件的方法 1 可以使用AD自带的转G文件的方法 x
  • ubuntu18.04下opencv的安装配置以及不同版本opencv的切换

    一 安装OpenCV3 4 1 如果是要跑ORB SLAM2 xff0c 建议用OpenCV 3 4 1 版本 xff0c 不然之后会很麻烦 xff0c 会出现不兼容问题 xff09 xff08 1 xff09 下载OpenCV 3 4 1