在您的机器上安装 OpenCV 有两种方法:为您的平台下载预构建版本或从源代码编译。
预建版本
在许多情况下,您可以找到满足您需求的预构建版本的 OpenCV。
OpenCV 核心团队的软件包
使用默认参数和最新编译器构建的 Android、iOS 和 Windows 包针对每个版本发布,它们不包含opencv_contrib模块。
第三方包
其他组织和个人维护着他们自己的 OpenCV 二进制发行版。例如:
从源构建
现有的二进制包可能不适用于您的用例,那么您必须自己构建自定义版本的 OpenCV。本节给出了构建过程的高级概述,请查看特定平台的教程以获取实际构建说明。
OpenCV 使用CMake构建管理系统进行配置和构建,因此本节主要描述使用 CMake 构建软件的一般过程。
第 0 步:先决条件
安装 C++ 编译器和构建工具。在 *NIX 平台上,它通常是 GCC/G++ 或 Clang 编译器和 Make 或 Ninja 构建工具。在 Windows 上,它可以是 Visual Studio IDE 或 MinGW-w64 编译器。Android NDK 中提供了适用于 Android 的本机工具链。XCode IDE 用于为 OSX 和 iOS 平台构建软件。
从官方网站或其他来源安装 CMake。
获取其他第三方依赖项:具有解码视频或显示 GUI 元素等额外功能的库;提供所选算法的优化实现的库;用于文档生成和其他附加功能的工具。检查OpenCV 配置选项参考以获取可用选项和相应的依赖项。
第一步:获取软件源
典型的软件项目由一个或多个代码库组成。OpenCV 有两个包含代码的存储库:opencv - 具有稳定且积极支持的算法的主存储库和opencv_contrib,其中包含实验性和非自由(专利)算法;和一个包含测试数据的存储库:opencv_extra。
您可以下载具有完整历史记录的存档或克隆存储库形式的存储库快照。
下载快照档案:
要克隆存储库,请在控制台中运行以下命令(必须安装git ):
git 克隆 https://github.com/opencv/opencv
git -C opencv checkout <some-tag>
# 可选
git 克隆 https://github.com/opencv/opencv_contrib
git -C opencv_contrib checkout <与 opencv 相同的标签>
# 可选
git 克隆 https://github.com/opencv/opencv_extra
git -C opencv_extra checkout <与 opencv 相同的标签>
- 笔记
- 如果您想使用多个存储库构建软件,请确保所有组件都相互兼容。对于 OpenCV,这意味着opencv和opencv_contrib存储库必须在相同的标记处签出,或者所有快照存档都从同一版本下载。
- 在选择要下载的版本时,请考虑您的目标平台和开发工具版本,最新版本的 OpenCV 可能会在非常旧的编译器上出现构建问题,反之亦然。我们建议使用最新版本和全新的操作系统/编译器组合。
第 2 步:配置
在此步骤中,CMake 将验证所有必要的工具和依赖项是否可用并与库兼容,并将为所选构建系统生成中间文件。可以是Makefiles、IDE项目和解决方案等。通常这一步是在新建的build目录下执行的:
cmake -G<generator> <configuration-options> <source-directory>
- 笔记
cmake-gui
应用程序允许使用图形用户界面查看和修改可用选项。有关详细信息,请参阅https://cmake.org/runningcmake/。
第 3 步:构建
在构建过程中,源文件被编译成目标文件,这些目标文件链接在一起或以其他方式组合成库和应用程序。可以使用通用命令运行此步骤:
cmake --build <构建目录> <构建选项>
...或可以直接调用底层构建系统:
(可选)第 3 步:安装
在安装过程中,构建结果和构建目录中的其他文件将被复制到安装位置。默认安装位置/usr/local
在 UNIX 和C:/Program Files
Windows 上。可以通过设置选项在配置步骤中更改此位置CMAKE_INSTALL_PREFIX
。要执行安装,请运行以下命令:
cmake --build <构建目录> --target install <其他选项>
- 笔记
- 此步骤是可选的,OpenCV 可以直接从构建目录中使用。
- 如果安装根位置是受保护的系统目录,那么安装过程必须以超级用户或管理员权限运行(例如
sudo cmake ...
)。
(可选)第 4 步:构建插件
通过将部分代码提取到动态加载的插件中,可以解耦一些 OpenCV 依赖项并使它们成为可选的。它有助于生成自适应二进制发行版,这些发行版可以在依赖性较低的系统上运行,并且只需安装缺少的库即可扩展功能。目前,模块core、videoio和highgui支持这种机制用于它们的某些依赖项。在某些情况下,可以通过设置诸如VIDEOIO_PLUGIN_LIST
或 之类的选项来与 OpenCV 一起构建插件,可以在OpenCV 配置选项参考HIGHGUI_PLUGIN_LIST
中找到与此场景相关的更多选项. 在其他情况下,插件应该在它们自己的构建过程中单独构建,本节描述这样的独立构建过程。
- 笔记
- 建议使用与用于 OpenCV 构建的选项兼容的编译器、配置和构建选项,否则生成的库可能会拒绝加载或导致其他运行时问题。请注意,由于 OpenCV 和相应的第三方库之间的额外障碍,动态加载后端时某些功能可能会受到限制或运行速度变慢。
构建过程类似于主 OpenCV 构建,但您必须使用位于相应子目录中的特殊 CMake 项目,这些文件夹还可以包含参考脚本和 Docker 图像。为插件使用名称前缀很重要opencv_<module>_<backend>
,这样加载程序才能找到它们。每个支持的前缀只能用于加载一个库,但是可以为单个前缀探测多个候选库。例如,你可以有libopencv_videoio_ffmpeg_3.so和libopencv_videoio_ffmpeg_4.so插件,第一个可以成功加载的插件将占用内部插槽并停止探测过程。下表列出了可能的前缀和项目位置:
模块 |
后端 |
地点 |
核 |
parallel_tbb、parallel_onetbb、parallel_openmp |
opencv/模块/核心/杂项/插件 |
高贵 |
GTK,GTK2,GTK3 |
opencv/模块/highgui/杂项/插件 |
视频 |
ffmpeg、gstreamer、intel_mfx、msmf |
opencv/模块/videoio/杂项 |
例子:
# 设置TBB检测环境,例如:
# 导出 TBB_DIR=<dir-with-tbb-cmake-config>
cmake -G<生成器> \
-DOPENCV_PLUGIN_NAME=opencv_core_tbb_<后缀> \
-DOPENCV_PLUGIN_DESTINATION=<目标文件夹> \
-DCMAKE_BUILD_TYPE=<配置>\
<opencv>/modules/core/misc/plugins/parallel_tbb
制作--建造。--config <配置>
- 笔记
- 在 Windows 上,插件必须与现有的 OpenCV 构建链接。将环境或 CMake 变量设置为包含OpenCVConfig.cmake
OpenCV_DIR
文件的目录,它可以是 OpenCV 构建目录或执行安装位置中的某个路径。
详细使用方法与教程请参阅以下网页链接
网页链接