c++ 中调用 opencv
本篇介绍如何在 Linux 系统(以 Ubuntu 18.04 为例)上安装 opencv,并在 c++ 代码中使用。
安装 opencv
安装 opencv 的方式有两种,一种是通过 Ubuntu 的包管理器 apt 或 aptitude,另一种是通过从源码编译安装。一般包管理器安装的 opencv 版本比较低,通过编译安装可以灵活的选择不同的版本,特别是最新的版本。
包管理器安装
1 | sudo apt update && sudo apt install libopencv-dev |
编译安装
主要参考 opencv 官网编译安装教程,大体步骤如下:
1 | sudo apt install -y g++ cmake git wget unzip build-essential pkg-config libgtk2.0-dev # 如果安装中遇到依赖问题,可以尝试 aptitude 来安装 |
配置
编译安装后,还需要进行配置,才能够使用:
添加库路径
1
2
3
4
5
6
7sudo echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf
# or
sudo echo "include /usr/local/lib" >> /etc/ld.so.conf
# 使生效
sudo ldconfig添加环境变量:
1
2
3
4
5
6# 如果你使用的是bash,需要把 .zshrc 改为 .bashrc
echo "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" >> ~/.zshrc
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib" >> ~/.zshrc
# 使生效
sourc ~/.zshrc创建 opencv.pc,如果前面编译时没有指定 -D OPENCV_GENERATE_PKGCONFIG=ON,那么需要手动创建 opencv.pc:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15sudo cat > /usr/local/lib/pkgconfig/opencv.pc <<-"EOF"
# Package Information for pkg-config
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/opencv4
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.9.0
Libs: -L${exec_prefix}/lib -lopencv_gapi -lopencv_highgui -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_video -lopencv_calib3d -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_videoio -lopencv_imgcodecs -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir}
EOF
查看OpenCV信息:
1 | # 对于包管理工具安装的 |
测试
使用源代码中的示例测试是否编译正确
1 | cd opencv/samples/cpp/example_cmake/ |
C++ 调用 opencv
打开 vscode,创建文件夹 show_img,在该文件夹下创建源文件 show.cpp:
1 |
|
然后,编译:
1 | # 使用包管理工具安装的OpenCV |
借助 cmake 编译,首先创建 CMakeLists.txt:
1 | cmake_minimum_required(VERSION 3.10.2) |
然后编译并执行:
1 | mkdir build |
参考文献
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 J. Xu!
评论