0x01 安装
# 相关依赖
apt-get install cmake
apt-get install build-essential libgtk2.0-dev libavcodec-dev
# 相关工具,为了方便程序编译,使用pkg-config
apt-get install pkg-config
# 开始安装
tar zxvf opencv-4.2.0.tar.gz
cd opencv-4.2.0
mkdir build
cd build
# 配置cmake参数:
# DCMAKE_BUILD_TYPE=Release - 编译发布版
# DOPENCV_GENERATE_PKGCONFIG=ON - 输出PKGCONFIG配置文件
# OpenCV4以上的版本默认都不输出该文件
# 不开启的话pkg-config就没有相关的配置文件可以识别到opencv依赖目录
# pkg-config 的具体用法在编译测试步骤
cmake -DCMAKE_BUILD_TYPE=Release -DOPENCV_GENERATE_PKGCONFIG=ON -DCMAKE_INSTALL_PREFIX=/usr/local ..
# 使用 -j 参数开启多线程同时编译提高编译速度
# 我使用的机器为8核心, 但使用 -j8 的参数编译时出现错误
# 所以改用了 -j4
# 造成原因可能是当某个编译依赖于其它模块时,
# 该模块所在线程还未完成该模块的编译
# 所以,当使用多线程出错时, 可以尝试不使用-j参数重新编译
# 该问题同时也适用于其它项目的源码编译过程
make -j4
sudo make install
0x02 配置
# 检查共享库是否存在opencv
# 查看下opencv的共享库路径是在 /usr/local/lib 还是在 /usr/local/lib64 里面
ldconfig -p | grep opencv
# 配置
echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf
# 刷新当前bash的依赖库
sudo ldconfig
# 若pkgconfig配置文件不存在于/usr/lib/pkgconfig则复制到该目录
sudo cp -f /usr/local/lib64/pkgconfig/opencv.pc /usr/lib/pkgconfig/
0x03 安装结果测试
# 测试pkg管理器是否能正确输出
pkg-config --libs opencv
pkg-config --cflags opencv
pkg-config --modversion opencv
0x04 编译测试
1、测试代码
首先准备一张图片到程序编译输出目录命名为test.jpg
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat mat = imread("./test.jpg"); // 读入图片测试
/*
* 显示读入的图片
* 如果纯控制台编码, 没有显示器的话
* 可以注释掉这下面两句,
* 只要编译成功, 就可证明依赖库安装完成了,
* 展示图片只是一颗定心丸
**/
imshow("Window name", mat);
waitKey(0);
return 0;
}
2、编译测试
# 编译测试
# 若编译失败,尝试将 `pkg-config --libs --cflags opencv` 放到编译指令最后
g++ file.cpp -o test.out `pkg-config --libs --cflags opencv`
0x05 卸载
cd opencv-3.4.0/build/
sudo make uninstall
0x06 相关资源下载
好了
现在你可以开始你的OpenCV学习之路了
下面提供我的OpenCV的对应版本的官方源码和官方的开发帮助文档
源码
开发帮助文档
[1] 在线阅览 - 官网[2] 离线版 - 官网下载 4.2.0.zip[3] 离线版 - 官网下载 4.2.0.tar.xz[4] 离线版 - 百度网盘 提取码 rrpn