本文作者Lawrence,位置未经作者允许禁止转载,谢谢!
以下所有内容,均来源于亲自实战和查询相关资料。
本文主要介绍OpenCV4.5.0在Ubuntu20.04中的安装步骤
官网下载:OpenCV下载官网点击Sources即可下载OpenCV4.5.0.zip。
由于OpenCV更新速度比较快,现在4.6版本的也已经出来了,建议大家安装2年前的,比较稳定。下载好之后,解压到home目录下,如下图所示:
添加opencv所需要的依赖库:
Required Packages
GCC 4.4.x or later
CMake 2.8.7 or higher
Git
GTK+2.x or higher, including headers (libgtk2.0-dev)
pkg-config
Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev(一些开发用视频解码)
[optional] libtbb2 libtbb-dev
[optional] libdc1394 2.x
[optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-dev
[optional] CUDA Toolkit 6.5 or higher
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
接下来这块安装时容易出现问题,尤其是在arm架构的Ubuntu上:
sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper1 libjasper-dev libdc1394-dev
特别的:
sudo apt-get install libjasper-dev libdc1394-dev
包errorE: unable to locate 原因:因为树莓派是ARM架构,不支持你当前的源
方法如下:
sudo gedit /etc/apt/sources.list
更换清华源,再加一个xenial-security main
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main
sudo apt update
到OpenCV4.5.0目录下,新建build文件夹,用于存放编译后的文件
cd ~/opencv-4.5.0
mkdir build
cd build
Cmake编译注意事项:
OPENCV_GENERATE_PKGCONFIG=ON这个配置一定要加上,Linux下我们使用opencv,需要使用pkg-config来进行环境变量的管理,这个软件需要.pc类型的文件作为软件配置信息,如果我们不配置,会出现opencv安装成功但是c编程无法使用的情况
另外就是 CMAKE_INSTALL_PREFIX=/usr/local这个关于安装路径的配置,这里的安装路径是在/usr/local下,这也是opencv的默认配置。
千万注意,最后的两个点点,千万不要删,这个指向CMakeLists.txt所在的目录。
其他编译项:
-D WITH_CUDA=OFF 有cuda编译时改为ON
-D WITH_FFMPEG=ON ffmpeg前提要安装才能ON
需要编译contrib,指定代码路径:
-D OPENCV_EXTRA_MODULES_PATH=/home/ly/opencv_contrib-4.0.0/modules
其他还有好多配置项,需要根据具体应用场景使用,如果只是OpenCV普通应用的话,都无需配置。如下:
sudo cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..
开始编译过程:
sudo make -j4
根据你的处理器修改-f值。如果你不知道你的处理器核心数,你可以输入nproc找到。
编译将会花费几分钟,或者更多,这依赖于你的系统配置。我这边是4.
编译结果如下图所示:
sudo make install
/etc/ld.so.conf.d/加入对于库的.conf文件,首先新建opencv.conf
sudo gedit /etc/ld.so.conf.d/opencv.conf
保存后终端输入以下代码,将/etc/ld.so.conf.d中的数据读入缓存
sudo ldconfig
添加pkg-config环境变量,配置bash,修改bash.bashrc文件
sudo gedit /etc/bash.bashrc
在文末加上
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source ~/.bashrc
更新一下:
sudo apt install mlocate
sudo updatedb
然后查看一下opencv的版本信息,终端输入 注意是opencv4
pkg-config --modversion opencv4
主要是在.pro文件中:
INCLUDEPATH += /usr/local/include/opencv4
LIBS += /usr/local/lib/libopencv_*.so
main.cpp中编写如下代码:
#include
using namespace cv;
int main()
{
Mat img = imread("/home/ly/Desktop/shanghai.jpeg");
cv::imshow("img",img);
cv:: waitKey(0);
return 0;
}
点击运行,只要可以显示图片即可,
到此,Ubuntu20.04安装OpenCV4,并验证完成。
本文Ubuntu20.04安装OpenCV4.5.0安装和简单Qt测试,记录了安装时候踩过的坑,后续所有目标QT项目图像相关功能测试,都是基于此环境下进行实战演练。亲自实战,有问题欢迎大家评论并联系我,喜欢的话记得点赞哦!