OpenCV  4.10.0
开源计算机视觉
加载...
搜索...
未找到任何搜索结果
OpenCV 安装概述

后续教程: OpenCV 配置选项参考

有两种方法可以在你的机器上安装 OpenCV:下载适合你平台的预编译版本或从源代码编译。

预编译版本

在许多情况下,你可以找到能够满足你需求的 OpenCV 预编译版本。

OpenCV 核心团队的包

使用默认参数和最新编译器构建的 Android、iOS 和 Windows 的包会针对每个版本发布,但这些版本不包含 opencv_contrib 模块。

第三方包

其他组织和个人维护他们自己的 OpenCV 二进制发行版。例如:

从源代码构建

有可能现有二进制包不适用于你的用例,那么你必须自己构建自定义版本 OpenCV。本节简要概述了构建过程,请查看特定平台的教程以获取实际构建说明。

OpenCV 使用 CMake 构建管理系统进行配置和构建,因此本节主要描述了使用 CMake 构建软件的通用过程。

第 0 步:先决条件

安装 C++ 编译器和构建工具。在 *NIX 平台上,通常是 GCC/G++ 编译器和 Make 或 Ninja 构建工具。在 Windows 上,它可以是 Visual Studio IDE 或 MinGW-w64 编译器。Android 的本机工具链在 Android NDK 中提供。XCode IDE 用于构建 OSX 和 iOS 平台的软件。

从官方网站或其他一些来源安装 CMake。

下载其他第三方依赖项:具有解码视频或显示 GUI 元素等额外功能的库;提供选定算法的优化实现的库;用于文档生成和其他附加功能的工具。查看OpenCV 配置选项参考,了解可用选项和相应的依赖项。

步骤 1:获取软件源

典型的软件项目由一个或多个代码存储库组成。OpenCV 有两个带有代码的存储库:opencv — 带有稳定且活动支持的算法的主存储库和 opencv_contrib,其中包含实验性和非免费(已获专利的)算法;还有一个带有测试数据的存储库:opencv_extra

你可以以存档的形式下载存储库的快照,也可以克隆具有完整历史记录的存储库。

要下载快照存档

要克隆存储库,请在控制台中运行以下命令(git 必须已安装

git clone https://github.com/opencv/opencv
git -C opencv checkout <some-tag>
# 可选
git clone https://github.com/opencv/opencv_contrib
git -C opencv_contrib checkout <same-tag-as-opencv>
# 可选
git clone https://github.com/opencv/opencv_extra
git -C opencv_extra checkout <same-tag-as-opencv>
注意
如果你想使用多个存储库来构建软件,请确保所有组件彼此兼容。对于 OpenCV,这意味着 opencvopencv_contrib 存储库必须在同一个标签下签出,或者所有快照存档都从同一个版本下载。
在选择下载哪个版本时,要考虑目标平台和开发工具版本,OpenCV 的最新版本可能与非常旧的编译器存在构建问题,反之亦然。我们建议使用最新版本和最新的操作系统/编译器组合。

步骤 2:配置

在此步骤中,CMake 将验证所有必要的工具和依赖项是否可用且与该库兼容,并将为所选构建系统生成中间文件。它可以是 Makefile、IDE 项目和解决方案等。通常,此步骤在新建的构建目录中执行

cmake -G<generator> <configuration-options> <source-directory>
注意
cmake-gui 应用程序允许使用图形用户界面查看和修改可用选项。有关详细信息,请参阅 https://cmake.org/runningcmake/

步骤 3:构建

在构建过程中,源文件将被编译成对象文件,这些文件将相互链接或组合成库和应用程序。此步骤可以使用通用命令运行

cmake --build <build-directory> <build-options>

... 或可以直接调用底层构建系统

make

(可选)步骤 3:安装

在安装过程中,构建结果和其他文件将从构建目录复制到安装位置。默认安装位置在 UNIX 上为 /usr/local,在 Windows 上为 C:/Program Files。此位置可以通过在配置步骤中设置 CMAKE_INSTALL_PREFIX 选项来更改。要执行安装,请运行以下命令

cmake --build <build-directory> --target install <other-options>
注意
此步骤是可选的,OpenCV 可以直接从构建目录使用。
如果安装根位置是受保护的系统目录,则必须以超级用户或管理员权限运行安装过程(例如 sudo cmake ...)。

(可选)步骤 4:构建插件

可以通过将某些代码部分提取到动态加载的插件中来分离某些 OpenCV 依赖项并使其变为可选的。这有助于生成自适应二进制分发包,可以在依赖项较少的系统上工作,只需安装缺失库即可扩展功能。目前,corevideoiohighgui 模块支持针对某些依赖项的此机制。在某些情况下,可以设置类似 VIDEOIO_PLUGIN_LISTHIGHGUI_PLUGIN_LIST 的选项来与 OpenCV 同时构建插件,可以在 OpenCV 配置选项参考 中找到更多与此方案相关的选项。在其他情况下,插件应该在自己的构建过程中单独构建,本部分介绍这样的独立构建过程。

注意
建议使用与 OpenCV 构建中使用的编译器、配置和构建选项兼容的选项,否则结果库可能拒绝加载或导致其他运行时问题。請注意,当后端以动态方式載入時,某些功能可能會受到限制或運作速度較慢,原因來自 OpenCV 和對應第三方函式庫之間的額外阻隔。

生成过程类似于 OpenCV 主生成过程,您必须使用位于相应子目录中的特殊 CMake 项目,这些文件夹还可以包含参考脚本和 Docker 映像。重要的是为插件使用 opencv_<module>_<backend> 名称前缀,以便加载器能够找到它们。每个受支持的前缀只能用于加载一个库,不过多个候选库可以针对单个前缀进行探测。例如,您可以拥有 libopencv_videoio_ffmpeg_3.solibopencv_videoio_ffmpeg_4.so 插件,第一个可以成功加载的插件将占据内部时隙并停止探测过程。在下表中展示了可能的各个前缀和项目位置

模块后端位置
核心parallel_tbb、parallel_onetbb、parallel_openmpopencv/modules/core/misc/plugins
highguigtk、gtk2、gtk3opencv/modules/highgui/misc/plugins
videoioffmpeg、gstreamer、intel_mfx、msmfopencv/modules/videoio/misc

示例

# 设置 TBB 检测的环境,例如
# export TBB_DIR=<包含-tbb-cmake-config-的-目录>
cmake -G<生成器> \
-DOPENCV_PLUGIN_NAME=opencv_core_tbb_<suffix> \
-DOPENCV_PLUGIN_DESTINATION=<目标文件夹> \
-DCMAKE_BUILD_TYPE=<config> \
<opencv>/modules/core/misc/plugins/parallel_tbb
cmake --build . --config <config>
注意
在 Windows 上,插件必须与现有的 OpenCV 生成相关联。将 OpenCV_DIR 环境或 CMake 变量设置为包含 OpenCVConfig.cmake 文件的目录,它可以是 OpenCV 生成目录或您执行安装操作时所在的某个路径。