文章目录
- 环境说明
- 安装方式说明
- 预编译版本
- 从OpenCV团队获取
- 从第三方开发者获取
- 从源码编译
- 步骤0:安装准备
- 步骤1:获取源代码
- 步骤2:配置构建环境
- 步骤3:构建
- 步骤4:安装(可选)
- 步骤5:构建插件(可选)
环境说明
- 语言:c++
- opencv版本:4.5.5
安装方式说明
安装OpenCV有两种方法:
- 特定平台下载预编译版本。
- 从源代码进行编译。
预编译版本
在一般情况下,可以找到满足需求的OpenCV预构建版本
从OpenCV团队获取
Android、iOS和Windows的软件包使用默认参数和最新的编译器构建,每个版本都会发布,它们不包含opencv_contrib模块。
- GitHub releases: https://github.com/opencv/opencv/releases
- SourceForge.net: https://sourceforge.net/projects/opencvlibrary/files/
从第三方开发者获取
其他组织和人员维护自己的OpenCV二进制发行版。例如:
- System packages in popular Linux distributions (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。
要下载源代码,请执行以下操作:
- 去https://github.com/opencv/opencv/releases并从任何版本下载“源代码”存档。
- (可选)转到https://github.com/opencv/opencv_contrib/releases并下载与opencv相同版本的“源代码”存档
- (可选)转到https://github.com/opencv/opencv_extra/releases并下载与opencv相同版本的“源代码”存档
- 将所有存档文件解压缩到某个位置
要克隆存储库,请在控制台中运行以下命令(必须安装git):
git clone https://github.com/opencv/opencvgit -C opencv checkout <some-tag># optionallygit clone https://github.com/opencv/opencv_contribgit -C opencv_contrib checkout <same-tag-as-opencv># optionallygit clone https://github.com/opencv/opencv_extragit -C opencv_extra checkout <same-tag-as-opencv>
步骤2:配置构建环境
在此步骤中,CMake将验证所有必要的工具和依赖项是否可用且与库兼容,并将为所选构建系统生成中间文件。它可以是Makefile、IDE项目和解决方案等。通常在新创建的构建目录中执行此步骤:
cmake -G<generator> <configuration-options> <source-directory>
步骤3:构建
在构建过程中,源文件被编译为链接在一起或以其他方式组合到库和应用程序中的对象文件。可以使用通用命令运行此步骤:
cmake --build <build-directory> <build-options>
…或底层构建系统可以直接调用:
make
步骤4:安装(可选)
在安装过程中,生成目录中的生成结果和其他文件将复制到安装位置。默认安装位置在UNIX上为/usr/local,在Windows上为C:\Program Files。通过设置CMAKE_INSTALL_PPREFIX选项,可以在配置步骤中更改此位置。要执行安装,请运行以下命令:
cmake --build <build-directory> --target install <other-options>
步骤5:构建插件(可选)
通过将部分代码提取到动态加载的插件中,可以分离一些OpenCV依赖项并使其成为可选的。它有助于生成自适应二进制发行版,该发行版可以在依赖性较小的系统上运行,并且只需安装缺失的库即可扩展功能。目前,core、videoio和highgui模块的一些依赖项都支持这种机制。在某些情况下,通过设置VIDEOIO_PLUGIN_LIST或HIGHGUI_PLUGIN_LIST等选项,可以与OpenCV一起构建插件,更多与此场景相关的选项可以在OpenCV配置选项参考中找到。在其他情况下,插件应该在自己的构建过程中单独构建,本节描述了这种独立的构建过程。
构建过程与主要的OpenCV构建类似,但您必须使用位于相应子目录中的特殊CMake项目,这些文件夹还可以包含引用脚本和Docker图像。为插件使用opencv__名称前缀非常重要,以便加载器能够找到它们。每个支持的前缀只能用于加载一个库,但是可以针对单个前缀探测多个候选。例如,您可以使用libopencv_videio_ffmpeg_3.so和libopencv.videio_ffm peg_4.so插件,第一个可以成功加载的插件将占用内部插槽并停止探测过程。下表列出了可能的前缀和项目位置:
示例:
# set-up environment for TBB detection, for example:# export TBB_DIR=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_tbbcmake --build . --config <config>