后续教程: 将 OpenCV 与基于 gdb 的 IDE 结合使用
| |
原作者 | Ana Huamán |
兼容性 | OpenCV >= 3.0 |
快速入门
构建核心模块
# 安装最低限度的必备组件(以 Ubuntu 18.04 为参考)
sudo apt update && sudo apt install -y cmake g++ wget unzip
# 下载并解压缩源代码
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
unzip opencv.zip
# 创建构建目录
mkdir -p build && cd build
# 配置
cmake ../opencv-4.x
# 构建
cmake --build .
使用 opencv_contrib 进行构建
# 安装最低限度的必备组件(以 Ubuntu 18.04 为参考)
sudo apt update && sudo apt install -y cmake g++ wget unzip
# 下载并解压缩源代码
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.x.zip
unzip opencv.zip
unzip opencv_contrib.zip
# 创建构建目录并切换到其中
mkdir -p build && cd build
# 配置
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.x/modules ../opencv-4.x
# 构建
cmake --build .
详细流程
本部分提供了关于构建流程的更多详细信息,并介绍了备用方法及工具。有关常规安装详细信息,请参阅 OpenCV 安装概述 教程,有关配置选项文档,请参阅 OpenCV 配置选项参考。
安装编译器和构建工具
- 要编译 OpenCV,您需要一个 C++ 编译器。通常为 G++/GCC 或 Clang/LLVM
- 安装 GCC...
- ... 或 Clang
sudo apt install -y clang
- OpenCV 使用 CMake 构建配置工具
sudo apt install -y cmake
- CMake 可以生成不同构建系统的脚本,例如 make、ninja
- 安装 Make...
- ... 或 Ninja
sudo apt install -y ninja-build
- 安装用于获取和解压缩源代码的工具
- wget 和 unzip...
sudo apt install -y wget unzip
- ... 或 git
下载源代码
获取 OpenCV 源代码有两种方法
- 使用网络浏览器或任何下载工具下载存储库的快照(约 80-90Mb),然后解压缩...
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
unzip opencv.zip
mv opencv-4.x opencv
- ... 或使用代码片段git在本地计算机上克隆储存库来获取完整的变更历史(大于 470Mb)
git clone https://github.com/opencv/opencv.git
git -C opencv checkout 4.x
- 提示
- 可在GitHub 和官方下载页面上找到其他分支、发行版或提交的快照。
配置和构建
- 创建构建目录
mkdir -p build && cd build
- 配置 - 生成首选构建系统的构建脚本
- 构建 - 运行实际编译过程
- 提示
- 配置过程可以从互联网下载一些文件以满足库依赖关系,连接失败可能导致一些模块或功能关闭或表现不同。有关详细信息和完整配置选项参考,请参阅OpenCV 安装概述和OpenCV 配置选项参考教程。
- 如果您在构建过程中遇到问题,请尝试清理或重新创建构建目录。配置的变更,例如禁用依赖项、修改构建脚本,或将源切换到另一个分支,会处理得不太好,并可能导致工作空间损坏。
-
Make可以在并行运行多个编译过程,
-j
选项表示“同时运行 个作业”。Ninja会自动检测可用处理器核心数,不需要-j
选项。
检查构建结果
在成功构建后,您会在build/lib
目录中找到库,在build/bin
目录中找到可执行文件(测试、样本、应用程序)
CMake 包文件将位于 build 根目录中
ls OpenCVConfig*.cmake
ls OpenCVModules.cmake
安装
- 警告
- 安装过程仅将文件复制到预定义的位置并进行少量修补。使用此方法安装不会将 opencv 集成到系统软件包注册表中,因此例如无法自动卸载 opencv。由于可能与系统软件包冲突,我们不建议普通用户进行全系统安装。
默认情况下,OpenCV 将安装到/usr/local
目录,所有文件都将复制到以下位置
/usr/local/bin
- 可执行文件
/usr/local/lib
- 库(.so)
/usr/local/cmake/opencv4
- cmake 包
/usr/local/include/opencv4
- 头文件
/usr/local/share/opencv4
- 其他文件(例如 XML 格式的已训练级联)
由于/usr/local
由 root 用户拥有,因此安装应具有提升的权限(sudo
)
或
可以借助 CMAKE_INSTALL_PREFIX
配置参数改变安装根目录,例如 -DCMAKE_INSTALL_PREFIX=$HOME/.local
可将文件安装到当前用户本地目录。借助 OPENCV_*_INSTALL_PATH
参数可以改变安装布局。有关详细信息,请参阅OpenCV 配置选项参考。