ubuntu20.04配置OpenCV的C++环境

ubuntu20.04配置OpenCV的C++环境

这里以opencv-3.4.16为例

复现https://github.com/raulmur/ORB_SLAM2此项目,需安装opencv及其他依赖,可见README.md详情

1.下载opencv源代码

https://opencv.org/releases/

2.下载OpenCV的扩展包opencv_contrib,需下载opencv对应版本

https://github.com/opencv/opencv_contrib

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 libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt install cmake-qt-gui

如果在执行第三个命令时提示"Unable to locate package libjasper-dev",应该是下载源的问题。解决方法如下:

复制代码
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update

然后再执行一遍添加依赖项目中的第三行指令,即可成功安装。

4.安装

1、在opencv-3.4.16文件夹中新建文件,命名为build;打开build文件夹,在终端中执行以下命令(最好在build文件下打开终端执行,并且如果多次执行下面cmake指令可能出现问题,解决方法就是直接将解压得到opencv文件夹删除,重新解压和安装):

复制代码
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

2、执行这一步时,如果一直卡在"IPPICV:Download:ippicv_2019_Inx_intel64..."上,这是因为下载很慢的原因,可以手动下载:

根据opencv版本下载,opencv-3.4.16/3rdparty/ippicv/ippicv.cmake查看版本

需要下载的版本是20191018,https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20191018/ippicv

根据实际情况下载对应文件,如ippicv_2020_lnx_intel64_20191018_general.tgz

3、之后修改opencv-3.4.16/3rdparty/ippicv/ippicv.cmake文件的下载地址改为本地路径,下图中链接改成文件路径 "file:///home/..."(ippicv文件的下载地址)

4、修改好ippicv路径之后,运行以下指令进行编译:

复制代码
sudo make -j8

5、进行安装

复制代码
sudo make install

5.安装好后,添加路径

终端输入:

复制代码
sudo gedit /etc/ld.so.conf

在打开的文件中添加:

复制代码
/usr/local/lib

保存之后,终端再输入:

复制代码
sudo ldconfig

6.配置环境

终端输入:

复制代码
sudo gedit /etc/bash.bashrc 

在打开的文件最下方添加:

复制代码
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

保存关闭文件,最后在终端输入以下指令:

复制代码
source /etc/bash.bashrc

之后就可以查看我们安装opencv的版本了

复制代码
pkg-config opencv --modversion

7.测试

在opencv-3.4.16/samples/cpp/example_cmake文件夹下打开终端,依次输入以下指令:

复制代码
cmake .
make
./opencv_example

有摄像头的话就会打开摄像头出现画面;如果没有摄像头,最后会出现黑屏幕与Hello Opencv几个大字。到此,安装完成。

相关推荐
minji...17 分钟前
Linux 进程信号(二)信号的保存,sigset_t,sigprocmask,sigpending
linux·运维·服务器·网络·数据结构·c++·算法
我材不敲代码2 小时前
OpenCV实战:全自动答题卡识别与评分系统
人工智能·opencv·计算机视觉
小菜鸡桃蛋狗3 小时前
C++——类和对象(下)
开发语言·c++
crescent_悦3 小时前
C++:Highest Price in Supply Chain
开发语言·c++
feng_you_ying_li3 小时前
底层实现map和set的第一步,AVL树的学习
c++
垫脚摸太阳3 小时前
第 36 场 蓝桥·算法挑战赛·百校联赛---赛后复盘
数据结构·c++·算法
Aaswk3 小时前
刷题笔记(回溯算法)
数据结构·c++·笔记·算法·leetcode·深度优先·剪枝
zhooyu3 小时前
GLM中lerp实现线性插值
c++·opengl
我不是懒洋洋4 小时前
预处理详解
c语言·开发语言·c++·windows·microsoft·青少年编程·visual studio
计算机安禾4 小时前
【数据结构与算法】第14篇:队列(一):循环队列(顺序存储
c语言·开发语言·数据结构·c++·算法·visual studio