Loading

Linux 下编译 OpenCV4

1 运行环境

  • linux 版本:统信 UOS 1030(可以认为是特殊的 ubuntu)

  • Opencv 版本:4.1.1

  • 开发语言:C++

2 编译方式

源代码 + cmake

3 opencv 下载

下载地址:

https://opencv.org/opencv-4-1-1/

下载截图:

4 opencv 解压

unzip opencv-4.1.1.zip

5 cmake 下载

opencv 4 要求 cmake 版本大于 3,根据需要下载即可

sudo apt-get cmake

此处我系统自带 cmake 版本为 3.13.4,如下图所示:

cmake -version

6 下载依赖

如果是缺少某个依赖文件,编译过程也不会出错,但是在使用 opencv 函数的时候就是提示错误,只能删了重新编译(即重走 cmake -> make ->make install),非常的坑,所以一定要先下载依赖文件。

必须要安装的依赖,通过命令安装:

sudo apt-get install build-essential git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

如果需要其他的功能,还需安装一些依赖,命令如下:

sudo apt-get install python-dev python-numpy python3-dev python3-numpy

sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

7 下载 ippicv

为解决在 cmake 过程中 ippicv_2019_lnx_intel64_general_20180723.tgz 这个文件下载超级慢的问题

下载地址

链接:https://pan.baidu.com/s/1Mg5m7IygJvxYbjBWOmIikw

提取码:au1o

修改 opencv 配置文件

将网络下载的模式改为本地文件下载的模式,这样就不用在网上下载了

# 打开终端,输入
vim opencv-4.1.1/3rdparty/ippicv/ippicv.cmake

# 将 47 行的
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/"
# 改为手动下载的文件的本地路径(仅供参考,根据自己的路径填写,我下载的地方为 /home/zyw)

"file:/home/zyw/"

8 用 cmake 生成 makefile 文件

在 opencv-4.1.1 下新建目录 install 作为安装目录,新建 build 作为 cmake 目录

cd opencv-4.1.1

mkdir install
mkdir build

在 build目录下执行 cmake,生成 makefile 文件:

cd build 

cmake -D CMAKE_INSTALL_PREFIX=../install/ \
-D CMAKE_BUILD_TYPE=RELEASE \
-D OPENCV_GENERATE_PKGCONFIG=On ..

opencv4 默认不生成 .pc 文件(导致无法使用 pkg-config 命令),**OPENCV_GENERATE_PKGCONFIG=ON **才会生成,因此需要开启

cmake 需要的配置选项 可根据自己需要来修改,上述为必须的配置选项,意思是:安装目录为 ../install/,以 RELEASE 版本编译,生成 .pc 文件

成功截图:

9 编译与安装

编译:

make -j4

成功截图:

安装:

make install

成功截图:

10 将编译生成的 opencv4.pc 拷贝进 /usr/lib/pkgconfig/

/usr/lib/pkgconfig/ 为 pkg-config 默认寻找目录

查找 opencv4.pc 所在位置

find ./ -name opencv4.pc 

拷贝

sudo cp ./unix-install/opencv4.pc /usr/lib/pkgconfig/

11 配置 opencv 动态库路径

因为我们 opencv 的安装目录为 /home/zyw/opencv-4.1.1/install,而不是 opencv 默认安装目录 /usr/lib,因此 ldconfig 无法找到 opencv 动态库(因为 ldconfig 默认搜寻 /lib和/usr/lib,以及配置文件/etc/ld.so.conf.d 内所列的目录下的库文件),因此需要添加 opencv 库路径目录

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

# 加上自己的 opencv 库路径目录
/home/zyw/opencv-4.1.1/install/lib

# 保存退出

# 更新系统动态库
sudo ldconfig

12 测试 opencv 是否安装正常

pkg-config --cflags --libs opencv4
  • pkg-config --cflags opencv4 代表我们安装的头文件路径
  • pkg-config --libs opencv4 代表我们安装的库文件路径

成功截图:

13 opencv 可用性测试

cd 你的opencv目录/samples/cpp/

g++ `pkg-config --cflags opencv4` drawing.cpp `pkg-config --libs opencv4` -o drawing.out
./drawing.out

./drawing.out

运行效果:

13 参考资料

1、Linux下安装OpenCV4(适用于Ubuntu等) - 小树谦谦谦 - https://www.jianshu.com/p/f54b0fc13811

2、linux下编译安装opencv生成opencv.pc - 浓茶淡酒 - https://blog.csdn.net/s15810751918/article/details/107705387

3、opencv 解决ippicv下载慢的问题: ippicv_2019_lnx_intel64_general_20180723 - 高精度计算机视觉 - https://spacevision.blog.csdn.net/article/details/101632917?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_paycolumn_v3&utm_relevant_index=2

4、linux中ldconfig的使用介绍 - chenzixun0 - https://blog.csdn.net/chenzixun0/article/details/56278632

5、Linux学习笔记(十一) -- Opencv库的编译和安装 - 张慕风 - https://blog.csdn.net/u014337397/article/details/80895940?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=3

6、linux c++ opencv4安装指南 - 小小小绿叶 - https://blog.csdn.net/litt1e/article/details/109954670

7、(细节项)在Linux下用正确的姿势配置编译安装OpenCV - Trick大魔王 - https://zhuanlan.zhihu.com/p/118222087

posted @ 2022-02-08 11:30  她爱喝水  阅读(2191)  评论(0编辑  收藏  举报