构建核心模块
# 安装最低先决条件(以 Ubuntu 18.04 为参考)
sudo apt update && sudo apt install -y cmake g++ wget 解压缩
# 下载并解压源码
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
解压缩 OpenCV.zip
# 创建构建目录
mkdir -p 构建 && cd 构建
# 配置
cmake ../opencv-4.x
# 构建
cmake --构建。
使用 opencv_contrib 构建
# 安装最低先决条件(以 Ubuntu 18.04 为参考)
sudo apt update && sudo apt install -y cmake g++ wget 解压缩
# 下载并解压源码
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
解压缩 OpenCV.zip
解压opencv_contrib.zip
# 创建构建目录并切换到其中
mkdir -p 构建 && cd 构建
# 配置
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.x/模块 ../opencv-4.x
# 构建
cmake --构建。
详细流程
本部分提供了生成过程的更多详细信息,并介绍了替代方法和工具。有关一般安装详细信息,请参阅 OpenCV?安装概述教程,有关配置选项文档,请参阅?OpenCV 配置选项参考。
安装编译器和构建工具
- 要编译 OpenCV,您需要一个 C++ 编译器。通常是 G++/GCC 或 Clang/LLVM:
- OpenCV 使用 CMake 构建配置工具:
- CMake 可以为不同的构建系统生成脚本,例如?make、ninja:
- 用于获取和解压缩源的安装工具:
下载源代码
有两种方法可以获取 OpenCV 源代码:
- 使用 Web 浏览器或任何下载工具 (~80-90Mb) 下载存储库的快照并解压缩...
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip
解压缩 OpenCV.zip
mv opencv-4.x opencv
- ...或使用?git?将存储库克隆到本地计算机以获取完整的更改历史记录 (>470Mb):
git clone https://github.com/opencv/opencv.git
git -C opencv 签出 4.x
注意
其他分支、版本或提交的快照可以在?GitHub?和官方下载页面上找到。
配置和构建
- 创建构建目录:
- 配置 - 为首选构建系统生成构建脚本:
- 构建 - 运行实际的编译过程:
注意
配置过程可以从 Internet 下载一些文件以满足库依赖关系,连接失败可能会导致某些模块或功能被关闭或行为不同。有关详细信息,请参阅 OpenCV?安装概述和 OpenCV?配置选项参考教程,以及完整的配置选项参考。
如果在生成过程中遇到问题,请尝试清理或重新创建生成目录。配置中的更改(例如禁用依赖项、修改构建脚本或将源代码切换到另一个分支)处理得不好,并可能导致工作区损坏。
Make?可以并行运行多个编译进程,option 表示“同时运行 <NUM> 作业”。Ninja?将自动检测可用处理器内核的数量,并且不需要选项。-j<NUM>
-j
检查生成结果
成功构建后,您将在目录中找到库,并在目录中找到可执行文件(测试、示例、应用程序):build/lib
build/bin
CMake 包文件将位于构建根目录中:
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格式的训练级联)
由于由 root 用户拥有,因此应使用提升的权限 ():/usr/local
sudo
或
安装根目录可以通过配置参数进行更改,例如 安装到当前用户的本地目录。可以使用参数更改安装布局。