OpenCV 核心团队提供的软件包

OpenCV 核心团队提供的软件包

下一个教程: OpenCV 配置选项参考

在你的机器上安装 OpenCV 有两种方式:下载适用于你平台的预构建版本或从源码编译。

预构建版本

在很多情况下,你可以找到满足你需求的 OpenCV 预构建版本。

OpenCV 核心团队提供的软件包

针对 Android、iOS 和 Windows 的软件包,使用默认参数和最新编译器构建,并且会为每个版本发布。它们不包含 opencv_contrib 模块。

GitHub 版本:https://github.com/opencv/opencv/releases

SourceForge.net:https://sourceforge.net/projects/opencvlibrary/files/

第三方软件包

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

流行的 Linux 发行版中的系统软件包 (https://pkgs.org/search/?q=opencv)

PyPI (https://pypi.ac.cn/search/?q=opencv)

Conda (https://anaconda.org/search?q=opencv)

Conan (https://github.com/conan-community/conan-opencv)

vcpkg (https://github.com/microsoft/vcpkg/tree/master/ports/opencv)

NuGet (https://nuget.net.cn/packages?q=opencv)

Brew (https://formulae.brew.sh/formula/opencv)

Maven (https://search.maven.org/search?q=opencv)

从源码构建

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

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

步骤 0:先决条件

安装 C++ 编译器和构建工具。在 *NIX 平台上,通常是 GCC/G++ 或 Clang 编译器以及 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。

你可以以归档文件的形式下载仓库的快照,或者克隆具有完整历史记录的仓库。

要下载快照归档文件:

转到 https://github.com/opencv/opencv/releases 并从任何版本下载“Source code”归档文件。

(可选)转到 https://github.com/opencv/opencv_contrib/releases 并下载与 opencv 相同版本的“Source code”归档文件。

(可选)转到 https://github.com/opencv/opencv_extra/releases 并下载与 opencv 相同版本的“Source code”归档文件。

将所有归档文件解压缩到某个位置

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

git clone https://github.com/opencv/opencv

git -C opencv checkout

# 可选

git clone https://github.com/opencv/opencv_contrib

git -C opencv_contrib checkout

# 可选

git clone https://github.com/opencv/opencv_extra

git -C opencv_extra checkout

注意如果要使用多个仓库构建软件,请确保所有组件彼此兼容。对于 OpenCV,这意味着 opencv 和 opencv_contrib 仓库必须在相同的标签处检出,或者所有快照归档文件都从相同的版本下载。

选择要下载的版本时,请考虑你的目标平台和开发工具版本。最新版本的 OpenCV 在使用非常旧的编译器时可能会出现构建问题,反之亦然。我们建议使用最新版本和最新的操作系统/编译器组合。

步骤 2:配置

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

cmake -G

注意cmake-gui 应用程序允许使用图形用户界面查看和修改可用选项。有关详细信息,请参见 https://cmake.com.cn/runningcmake/。

步骤 3:构建

在构建过程中,源文件被编译成目标文件,这些目标文件被链接在一起或以其他方式组合成库和应用程序。可以使用通用命令运行此步骤

cmake --build

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

make

(可选)步骤 3:安装

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

cmake --build --target install

注意此步骤是可选的,可以直接从构建目录中使用 OpenCV。

如果安装根位置是受保护的系统目录,则必须以超级用户或管理员权限运行安装过程(例如,sudo cmake ...)。

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

可以通过将部分代码提取到动态加载的插件中,来解耦 OpenCV 的某些依赖项并使其成为可选的。这有助于生成自适应二进制发行版,这些发行版可以在依赖项较少的系统上工作,并且只需安装缺少的库即可扩展功能。目前,模块 core、videoio 和 highgui 支持其某些依赖项的这种机制。在某些情况下,可以通过设置诸如 VIDEOIO_PLUGIN_LIST 或 HIGHGUI_PLUGIN_LIST 之类的选项来与 OpenCV 一起构建插件,有关此方案的更多选项可以在 OpenCV 配置选项参考 中找到。在其他情况下,插件应该在其自己的构建过程中单独构建,本节描述了这种独立的构建过程。

注意建议使用与用于 OpenCV 构建的编译器、配置和构建选项兼容的编译器、配置和构建选项,否则生成的库可能会拒绝加载或导致其他运行时问题。请注意,当后端由于 OpenCV 和相应的第三方库之间的额外屏障而动态加载时,某些功能可能会受到限制或工作速度较慢。

构建过程与 OpenCV 的主构建类似,但是你必须使用位于相应子目录中的特殊 CMake 项目,这些文件夹还可以包含参考脚本和 Docker 镜像。重要的是为插件使用 opencv__ 名称前缀,以便加载器能够找到它们。每个支持的前缀只能用于加载一个库,但是可以为单个前缀探测多个候选者。例如,你可以拥有 libopencv_videoio_ffmpeg_3.so 和 libopencv_videoio_ffmpeg_4.so 插件,并且可以成功加载的第一个插件将占据内部插槽并停止探测过程。下表介绍了可能的前缀和项目位置

modulebackendslocation

coreparallel_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=

cmake -G \

-DOPENCV_PLUGIN_NAME=opencv_core_tbb_ \

-DOPENCV_PLUGIN_DESTINATION= \

-DCMAKE_BUILD_TYPE= \

/modules/core/misc/plugins/parallel_tbb

cmake --build . --config

注意在 Windows 上,插件必须与现有的 OpenCV 构建链接。将 OpenCV_DIR 环境变量或 CMake 变量设置为包含 OpenCVConfig.cmake 文件的目录,它可以是 OpenCV 构建目录或你在执行安装的位置中的某个路径。

相关推荐

蝚蠕是什么意思
约彩365app官方版下载

蝚蠕是什么意思

⌛ 08-02 👁️ 3492
加勒比海盗巴博萨还会复活吗
约彩365app官方版下载

加勒比海盗巴博萨还会复活吗

⌛ 09-19 👁️ 3898