OpenCV 功能特性和依赖关系
有许多可选的依赖项和功能可以打开或关闭。CMake 具有特殊选项,允许打印所有可用的配置参数:
cmake -LH …/opencv
选项命名约定
有三种选项用于控制库的依赖项,它们具有不同的前缀:
- 以启用或禁用依赖项开头的选项
WITH_ - 从启用或禁用构建和使用与 OpenCV 捆绑在一起的第三方库开始的选项
BUILD_ - 以
HAVE_开头的选项表示已启用依赖项,如果无法使用自动检测,则可用于手动启用依赖项。
启用选项时:WITH_
- 如果启用选项,将构建并启用第三方库 => 设置为
BUILD_和HAVE_为ON - 如果禁用选项,则将检测到并启用第三方库(如果找到)=> 设置为
BUILD_和HAVE_为OFF(除非强制构建)
异构计算
CUDA 支持
WITH_CUDA(默认:OFF)
许多算法已经使用 CUDA 加速实现,这些函数位于单独的模块中。CUDA 工具包必须从官方 NVIDIA 站点安装,作为先决条件。对于早于 3.9 的 CMake 版本,OpenCV 使用自己的脚本,对于较新的版本 - 与 CMake 打包的脚本。其他选项可用于控制构建过程,例如 cmake/FindCUDA.cmake 或 cmake/OpenCVDetectCUDA.cmake。这些参数尚未记录,详情请查阅脚本。
注意 从 OpenCV 4.0 版开始,所有 CUDA 加速算法实现都已移至 opencv_contrib 存储库。要同时构建 opencv 和 opencv_contrib,请选中相关选项。
可以在相应的部分找到一些教程。
另请参阅:CUDA
待补充选项:WITH_CUFFT, WITH_CUBLAS, WITH_NVCUVID
OpenCL 支持
WITH_OPENCL(默认值:ON)
多种 OpenCL 加速算法可通过所谓的'透明 API(T-API)'获得。此集成在用户级别使用与常规 CPU 实现相同的功能。如果输入和输出图像参数作为不透明的对象传递,则切换到 OpenCL 执行分支。更多信息可以在源代码中找到。
在生成时,此功能没有任何先决条件。在运行时,需要一个有效的 OpenCL 运行时,以检查它的运行和/或命令。OpenCL 集成的某些参数可以使用环境变量进行修改,例如 OPENCV_OPENCL_DEVICE。但是,目前还没有关于此功能的完整文档,因此请查看文件中的源代码以获取详细信息。
另请参阅:OpenCL
待补充选项:WITH_OPENCL_SVM, WITH_OPENCLAMDFFT, WITH_OPENCLAMDBLAS, WITH_OPENCL_D3D11_NV, WITH_VA_INTEL
图像读写(imgcodecs 模块)
内置格式
OpenCV 可以在没有任何第三方库帮助的情况下读取以下格式:


