OpenCV 4.11.0
开源计算机视觉库
|
下一教程: OpenCV 配置选项参考
在你的机器上安装OpenCV有两种方法:下载适合你平台的预编译版本或从源码编译。
在许多情况下,你可以找到满足你需求的OpenCV预编译版本。
针对Android、iOS和Windows的软件包使用默认参数和最新的编译器构建,每个版本都会发布,它们不包含opencv_contrib模块。
其他组织和个人维护他们自己的OpenCV二进制发行版。例如:
可能现有二进制包不适用于你的用例,那么你将不得不自己构建自定义版本的OpenCV。本节概述了构建过程,请查看特定平台的教程以获取实际的构建说明。
OpenCV 使用 CMake 构建管理系统进行配置和构建,因此本节主要描述使用 CMake 构建软件的通用过程。
安装 C++ 编译器和构建工具。在 *NIX 平台上,通常是 GCC/G++ 或 Clang 编译器以及 Make 或 Ninja 构建工具。在 Windows 上,可以使用 Visual Studio IDE 或 MinGW-w64 编译器。Android 的原生工具链在 Android NDK 中提供。XCode IDE 用于为 OSX 和 iOS 平台构建软件。
从官方网站或其他来源安装 CMake。
获取其他第三方依赖项:具有额外功能的库(例如解码视频或显示 GUI 元素);提供选定算法的优化实现的库;用于文档生成和其他额外功能的工具。查看 OpenCV 配置选项参考 以了解可用选项和相应的依赖项。
典型的软件项目由一个或多个代码库组成。OpenCV 有两个包含代码的存储库:opencv - 包含稳定且积极支持的算法的主存储库和 opencv_contrib,其中包含实验性和非免费(专利)算法;以及一个包含测试数据的存储库:opencv_extra。
你可以下载作为存档形式的存储库快照,或克隆具有完整历史记录的存储库。
要下载快照存档:
要克隆存储库,请在控制台中运行以下命令(必须安装git git)
在此步骤中,CMake 将验证所有必要的工具和依赖项是否可用且与库兼容,并将为所选构建系统生成中间文件。它可能是 Makefiles、IDE 项目和解决方案等。通常,此步骤在新建的构建目录中执行。
cmake-gui
应用程序允许使用图形用户界面查看和修改可用选项。详情请参见 https://cmake.com.cn/runningcmake/。在构建过程中,源文件将编译成目标文件,这些目标文件将链接在一起或以其他方式组合成库和应用程序。此步骤可以使用通用命令运行
…或者可以直接调用底层构建系统
在安装过程中,构建结果和构建目录中的其他文件将复制到安装位置。默认安装位置在 UNIX 上是/usr/local
,在 Windows 上是C:/Program Files
。可以通过设置CMAKE_INSTALL_PREFIX
选项在配置步骤中更改此位置。要执行安装,请运行以下命令:
sudo cmake ...
)。可以通过将部分代码提取到动态加载的插件中,来解耦一些OpenCV的依赖项并使其可选。这有助于生成自适应的二进制发行版,这些发行版可以在依赖项较少的系统上运行,并且只需安装缺少的库即可扩展功能。目前,core、videoio和highgui模块支持这种机制来处理部分依赖项。在某些情况下,可以通过设置VIDEOIO_PLUGIN_LIST
或HIGHGUI_PLUGIN_LIST
等选项来与OpenCV一起构建插件,更多与这种情况相关的选项可以在OpenCV配置选项参考中找到。在其他情况下,插件应该在其自己的构建过程中单独构建,本节描述了这种独立构建过程。
构建过程类似于主要的OpenCV构建,但您必须使用位于相应子目录中的特殊CMake项目,这些文件夹也可能包含参考脚本和Docker镜像。务必为插件使用opencv_<module>_<backend>
名称前缀,以便加载器能够找到它们。每个支持的前缀只能用于加载一个库,但是可以探测多个候选项以匹配单个前缀。例如,您可以拥有libopencv_videoio_ffmpeg_3.so和libopencv_videoio_ffmpeg_4.so插件,并且第一个成功加载的插件将占用内部插槽并停止探测过程。下表列出了可能的前缀和项目位置。
模块 | 后端 | 位置 |
---|---|---|
core | parallel_tbb, parallel_onetbb, parallel_openmp | opencv/modules/core/misc/plugins |
highgui | gtk, gtk2, gtk3 | opencv/modules/highgui/misc/plugins |
videoio | ffmpeg, gstreamer, intel_mfx, msmf | opencv/modules/videoio/misc |
示例
OpenCV_DIR
环境变量或CMake变量为包含OpenCVConfig.cmake文件的目录,这可以是OpenCV构建目录或您执行安装位置的某个路径。