OpenCV介绍:OpenCV 安装概述 OpenCV v4.8.0

本文介绍了如何在不同平台上安装OpenCV,包括预编译版本的使用和从源代码编译的过程,重点讲解了CMake在配置和构建中的作用。还提到预编译包、第三方发行版和自定义构建的步骤,以及注意事项和相关工具的选择。
摘要由CSDN通过智能技术生成

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

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

预编译版本

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

OpenCV 核心团队开发的软件包

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

第三方软件包

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

流行 Linux 发行版中的系统包 (https://pkgs.org/search/?q=opencv)
PyPI (https://pypi.org/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://www.nuget.org/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 NDK 中提供了用于 Android 的本地工具链。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 而言,这意味着 opencv 和
opencv_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 的某些依赖关系,使其成为可选项。这有助于生成自适应的二进制发行版,可在依赖性较少的系统上运行,只需安装缺失的库即可扩展功能。目前,core、videoio 和 highgui 模块的部分依赖项支持这种机制。在某些情况下,可以通过设置选项(如 VIDEOIO_PLUGIN_LISTHIGHGUI_PLUGIN_LIST)与 OpenCV 一起构建插件,更多相关选项请参见 OpenCV 配置选项参考。在其他情况下,插件应在自己的构建程序中单独构建,本节将介绍这种独立的构建过程。

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

编译过程与 OpenCV 的主编译过程类似,但您必须使用位于相应子目录下的特殊 CMake 项目,这些文件夹还可以包含参考脚本和 Docker 镜像。为插件使用 opencv_<module>_<backend> 名称前缀非常重要,这样加载器才能找到它们。每个受支持的前缀只能用于加载一个库,但单个前缀可以探测多个候选库。例如,可以有 libopencv_videoio_ffmpeg_3.so 和 libopencv_videoio_ffmpeg_4.so 两个插件,第一个能成功加载的插件将占用内部插槽并停止探测进程。下表列出了可能的前缀和项目位置:

模块前端所在位置
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=<dir-with-tbb-cmake-config>
cmake -G<generator> \
    -DOPENCV_PLUGIN_NAME=opencv_core_tbb_<suffix> \
    -DOPENCV_PLUGIN_DESTINATION=<dest-folder> \
    -DCMAKE_BUILD_TYPE=<config> \
    <opencv>/modules/core/misc/plugins/parallel_tbb
cmake --build . --config <config>

注意事项
在 Windows 环境下,插件必须与现有的 OpenCV 生成文件链接。将 OpenCV_DIR 环境变量或 CMake
变量设置为包含 OpenCVConfig.cmake 文件的目录,该目录可以是 OpenCV 联编目录,也可以是安装位置的某个路径。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值