OpenCV 4.10.0
开源计算机视觉
|
上一教程: OpenCV 安装概述
下一教程: OpenCV 环境变量参考
可以通过以下几种方式设置配置选项
cmake -Doption=value ...
cmake -C my_options.txt ...
在此参考中,将使用常规命令行。
大多数选项均可在 OpenCV 的根 cmake 脚本中找到:opencv/CMakeLists.txt
。特定模块中可以定义某些选项。
可以使用 CMake 工具打印所有可用选项
最流行且最实用的选项以 WITH_
、ENABLE_
、BUILD_
和 OPENCV_
开头。
默认值会根据平台和其他选项的值而异。
OPENCV_EXTRA_MODULES_PATH
选项包含用分号分隔的目录列表,这些目录包含将添加到编译的额外模块。模块目录必须具有兼容的布局和 CMakeLists.txt,可以在 编码风格指南 中找到简要说明。
示例
可以使用 CMAKE_BUILD_TYPE
选项来启用调试编译;生成的可执行文件将包含调试符号,并且大多数编译器优化都将被关闭。要在 Release 编译中启用调试符号,请开启 BUILD_WITH_DEBUG_INFO
选项。
在某些平台上(例如 Linux),必须在配置阶段设置编译类型
在其他平台上,可以在同一个编译目录中生成不同类型的编译(例如 Visual Studio、XCode)
如果你使用 GNU libstdc++(GCC 的默认设置),可以开启 ENABLE_GNU_STL_DEBUG
选项,然后 C++ 库将在调试模式下使用,例如在访问向量元素时将检查索引范围。
可以使用 CV_DISABLE_OPTIMIZATION
选项禁用许多种类的优化
BUILD_SHARED_LIBS
选项控制生成动态(.dll、.so、.dylib)还是静态(.a、.lib)库。默认值取决于目标平台,在大多数情况下它是 ON
。
示例
ENABLE_PIC
设置 CMAKE_POSITION_INDEPENDENT_CODE 选项。它启用或禁用“位置无关代码”的生成。如果要编译动态库或准备链接到动态库中的静态库,则必须启用此选项。默认值为 ON
。
OPENCV_GENERATE_PKGCONFIG
选项会启用 .pc
文件生成,及其标准的 CMake 软件包。此文件可能对那些不使用 CMake 来构建的项目有所帮助。
示例
.pc
文件可能包含不完整的三方依赖性列表,且在某些配置中可能不起作用,尤其是在静态构建时。此功能自 4.x 版本起就已不再受官方支持,且已默认禁用。测试分为两种:准确性(opencv_test_*
)和性能(opencv_perf_*
)。默认情况下,测试和应用程序处于启用状态。默认情况下不会构建示例,应显式启用。
相应的 cmake 选项
每个模块都是 modules
目录的子目录。可以禁用一个模块
相反的选项是仅构建指定的模块和它们所依赖的所有模块
在此示例中,我们请求了 3 个模块,而配置脚本会自动确定所有依赖项
如果配置脚本无法从 Internet 下载其他库和文件,它会尝试这样做,如果失败,相应的特征会被关闭。在某些情况下,可能会发生配置错误。默认情况下,所有文件首先下载到 <source>/.cache
目录,然后解压或复制到构建目录。可以通过设置环境变量或配置选项来更改下载缓存的位置
如果通过代理访问,则应在运行 cmake 之前设置相应的环境变量
下载过程的完整日志可以在构建目录 - CMakeDownloadLog.txt
中找到。此外,对于每个下载失败,将在构建目录的辅助脚本中添加一条命令,例如:download_with_wget.sh
。用户可以按原样运行这些脚本,或根据自己的需要进行修改。
在 x86_64 机器上,默认情况下,库将针对 SSE3 指令集级别进行编译。可以通过配置选项更改此级别
VFPV3
和 NEON
,PowerPC 上的 VSX
。某些函数支持调度机制,允许为多个指令集编译它们,并在运行时选择一种指令集。在配置过程中可以更改已启用的指令集的列表
要禁用调度机制,应将此选项设置为一个空值
可以禁用代码经过优化的部分,以便进行故障排除和调试
可以使用以下选项生成带有工具或经过安全改进的特殊版本。所有选项在默认情况下均已禁用。
选项 | 编译器 | 说明 |
---|---|---|
ENABLE_PROFILING | GCC 或 Clang | 启用性能分析编译器和链接器选项。 |
ENABLE_COVERAGE | GCC 或 Clang | 启用代码覆盖率支持。 |
OPENCV_ENABLE_MEMORY_SANITIZER | 无 | 启用代码中的几个怪癖,以辅助内存消毒程序。 |
ENABLE_BUILD_HARDENING | GCC、Clang、MSVC | 启用降低代码被利用可能性的编译器选项。 |
ENABLE_LTO | GCC、Clang、MSVC | 启用链接时优化 (LTO)。 |
ENABLE_THIN_LTO | Clang | 启用将中间位代码合并到二进制文件中的精简 LTO,允许使用者以后优化他们的应用程序。 |
可以使用以下选项为每个函数启用 IPP 优化,但会增加 opencv 库的大小。所有选项在默认情况下均已禁用。
选项 | 功能 | + 大小(大致) |
---|---|---|
OPENCV_IPP_GAUSSIAN_BLUR | GaussianBlur() | +8Mb |
OPENCV_IPP_MEAN | mean() / meanStdDev() | +0.2Mb |
OPENCV_IPP_MINMAX | minMaxLoc() / minMaxIdx() | +0.2Mb |
OPENCV_IPP_SUM | sum() | +0.1Mb |
有许多可选的依赖项和功能可以打开或关闭。cmake 有一个特殊选项,允许打印所有可用的配置参数
有三种选项用于控制库的依赖项,它们有不同的前缀
WITH_
开头的选项启用或禁用依赖项BUILD_
开头的选项启用或禁用构建和使用与 OpenCV 捆绑在一起的第三方库HAVE_
开头的选项表示依赖项已启用,如果无法使用自动检测时,可以使用它手动启用依赖项。当 WITH_
选项已启用
BUILD_
选项已启用,第三方库将被构建并启用 => HAVE_
设为 ON
BUILD_
选项已禁用,在找到目标时,第三方库将被检测并启用 => 在找到依赖项时,HAVE_
将被设为 ON
WITH_CUDA
(默认:OFF)
许多算法已使用 CUDA 加速实现,这些函数位于单独的模块中。作为前提条件,必须从官方 NVIDIA 网站安装 CUDA 工具包。对于早于 3.9 的 cmake 版本,OpenCV 使用其自己的 cmake/FindCUDA.cmake
脚本,而对于较新版本,则使用随 CMake 打包的脚本。可以使用其他选项来控制构建过程,例如 CUDA_GENERATION
或 CUDA_ARCH_BIN
。这些参数尚未记录,有关详细信息,请查阅 cmake/OpenCVDetectCUDA.cmake
脚本。
TODO:其他选项:WITH_CUFFT
、WITH_CUBLAS
、WITH_NVCUVID
?
WITH_OPENCL
(默认:ON)
多个 OpenCL 加速算法可通过所谓的“透明 API (T-API)”获得。此集成在用户级别使用与常规 CPU 实现相同的函数。如果将输入和输出图像参数作为不透明 cv::UMat 对象传递,则切换到 OpenCL 执行分支。详情请参阅 简要介绍 和 OpenCL 支持
此功能在构建时没有任何前提条件。在运行时,需要可正常工作的 OpenCL 运行时,请运行 clinfo
和/或 opencv_version --opencl
命令进行检查。OpenCL 集成的一些参数可以使用环境变量(例如 OPENCV_OPENCL_DEVICE
)修改。但是,此功能还没有详尽的文档,因此请查看 modules/core/src/ocl.cpp
文件中的源代码,了解详细信息。
TODO:其他选项:WITH_OPENCL_SVM
、WITH_OPENCLAMDFFT
、WITH_OPENCLAMDBLAS
、WITH_OPENCL_D3D11_NV
、WITH_VA_INTEL
OpenCV 可以读取以下格式而无需借助任何第三方库
WITH_IMGCODEC_HDR
)WITH_IMGCODEC_SUNRASTER
)WITH_IMGCODEC_PXM
、WITH_IMGCODEC_PFM
)格式 | 选项 | 默认 | 强制生成自己的 |
---|---|---|---|
PNG | WITH_PNG | 开启 | BUILD_PNG |
JPEG | WITH_JPEG | 开启 | BUILD_JPEG |
TIFF | WITH_TIFF | 开启 | BUILD_TIFF |
WEBP | WITH_WEBP | 开启 | BUILD_WEBP |
JEPG2000 与 OpenJPEG | WITH_OPENJPEG | 开启 | BUILD_OPENJPEG |
JEPG2000 与 JasPer | WITH_JASPER | 开启(请参阅注释) | BUILD_JASPER |
EXR | WITH_OPENEXR | 开启 | BUILD_OPENEXR |
读取这些格式的图像需要的所有库都包含在 OpenCV 中,并且如果在配置阶段未找到,将自动构建。相应的 BUILD_*
选项将强制构建并使用我们自己的库,它们在某些平台(例如 Windows)上默认启用。
WITH_GDAL
(默认:关闭)
GDAL 是一个较高级别的库,支持读取多种文件格式,包括 PNG、JPEG 和 TIFF。在打开文件时,它将具有更高的优先权,并且可以覆盖其他后端。此库将使用 cmake 包机制搜索,请确保已正确安装或手动设置 GDAL_DIR
环境或 cmake 变量。
WITH_GDCM
(默认:关闭)
通过 GDCM 库 启用 DICOM 医学图像格式支持。此库将使用 cmake 包机制搜索,请确保已正确安装或手动设置 GDCM_DIR
环境或 cmake 变量。
待办:videoio 如何工作、注册表、优先级
WITH_V4L
(Linux;默认:ON )
使用 Video4Linux API 从摄像头捕获图像。必须安装 Linux 内核头文件。
WITH_FFMPEG
(默认:ON)
与 FFmpeg 库集成,用于解码和编码视频文件和网络流。此库可以读取和写入许多流行的视频格式。它包含几个组件,这些组件必须作为构建的先决条件进行安装
Windows 平台例外地会下载一个包含 FFmpeg 的预构建的 插件库在配置阶段里,该库将被复制到包含所有生成库的 bin
文件夹里。
WITH_GSTREAMER
(默认:ON)
启用与 GStreamer 库集成的功能,以便解码和编码视频文件,从摄像头和网络流捕获帧。可以通过安装多个插件来扩展受支持的格式列表。OpenCV 允许以字符串形式将任意的 GStreamer 管道传递到 cv::VideoCapture 和 cv::VideoWriter 对象中。
多个 GStreamer 插件在不同的平台上提供硬件加速视频处理功能。
WITH_MSMF
(Windows;默认:ON)
启用 MSMF 后端,它使用 Windows 内置的 Media Foundation 框架。可用于从摄像头捕获帧、解码和编码视频文件。该后端具有硬件加速处理支持(WITH_MSMF_DXVA
选项,默认情况下为 ON)。
WITH_DSHOW
(Windows;默认:ON)
该后端使用旧的 DirectShow 框架。它只能用于从摄像头捕获帧。该后端现在已被弃用,支持 MSMF 后端,但可以在同一个版本中同时启用这两个后端。
WITH_AVFOUNDATION
(Apple;默认:ON)
AVFoundation 框架是 Apple 平台的一部分,可用于从摄像头捕获帧、编码和解码视频文件。
有几个不那么流行的框架可以用于读写视频。每个框架都需要安装相应的库或 SDK。
选项 | 默认 | 说明 |
---|---|---|
WITH_1394 | 开启 | IIDC IEEE1394 使用 DC1394 库提供支持( |
WITH_OPENNI | OFF | OpenNI 可用于从深度感测摄像头捕获数据。已弃用。 |
WITH_OPENNI2 | OFF | OpenNI2 可用于从深度感测摄像头捕获数据。 |
WITH_PVAPI | OFF | PVAPI 是 Prosilica GigE 摄像头的传统 SDK。已弃用。 |
启用阿拉维斯 | OFF | 阿拉维斯 库用于使用 Genicam 相机获取视频。 |
启用 XIMEA | OFF | XIMEA 相机支持。 |
启用 XINE | OFF | XINE 库支持。 |
启用英特尔实感 | OFF | 英特尔实感 相机支持。 |
启用 MFX | OFF | MediaSDK 库可用于生视频流的硬件加速解码和编码。 |
启用 GPhoto2 | OFF | GPhoto 库可用于从相机采集帧。 |
启用安卓媒体 NDK | 开启 | MediaNDK 库自 API 级别 21 起可在安卓上使用。 |
自版本 4.1.0 起,一些 videoio 后端可构建为插件,从而打破对第三方库的严格依赖关系,并使其在运行时变为可选。以下选项可用于控制此机制:
选项 | 默认 | 说明 |
---|---|---|
启用视频输入输出插件 | 开启 | 启用或完全禁用插件。 |
视频输入输出插件列表 | 空 | 以逗号或分号分隔的后端名称列表,这些名称需编译为插件。支持的名称包括 ffmpeg、gstreamer、msmf、mfx 和 all。 |
查看 OpenCV 安装概述 以获取独立插件的构建说明。
一些 OpenCV 算法可以使用多线程加速处理。OpenCV 可以使用一种线程后端构建。
后端 | 选项 | 默认 | 平台 | 说明 |
---|---|---|---|---|
pthreads | 启用 PTHREADS PF | 开启 | 类似 Unix | 基于 pthreads 库的默认后端可用于 Linux、Android 和其他类似 Unix 的平台。线程池在 OpenCV 中实现,可通过环境变量 OPENCV_THREAD_POOL_* 来控制。有关详细信息,请查看 modules/core/src/parallel_impl.cpp 文件中的源代码。 |
并发 | 无 | 开启 | Windows | 并发运行时 可用于 Windows,并且会在受支持的平台上启用 开启,除非启用了其他后端。 |
GCD | 无 | 开启 | Apple | Grand Central Dispatch 可用于 Apple 平台,并且会在启用 开启 除非启用了其他后端。使用全局系统线程池。 |
TBB | WITH_TBB | OFF | 多个 | Threading Building Blocks 是用于并行编程的跨平台库。 |
OpenMP | WITH_OPENMP | OFF | 多个 | OpenMP API 依赖于编译器支持。 |
HPX | WITH_HPX | OFF | 多个 | 高性能 ParallelX 是一种更适合多处理器环境的实验性后端。 |
BUILD_TBB
选项启用此功能。自 4.5.2 版本起,OpenCV 支持动态加载的多线程后端。此时仅支持独立的编译过程:首先,您必须使用某个默认并行后端(如 pthreads)构建 OpenCV,然后构建每个插件并将生成的二进制文件复制到lib 或bin 文件夹。
选项 | 默认 | 说明 |
---|---|---|
PARALLEL_ENABLE_PLUGINS | 开启 | 启用插件支持,如果禁用此选项,OpenCV 将不会尝试加载任何内容 |
查看 OpenCV 安装概述 以获取独立插件的构建说明。
OpenCV 依赖于各种 GUI 库来绘图。
选项 | 默认 | 平台 | 说明 |
---|---|---|---|
WITH_GTK | 开启 | Linux | GTK 是 Linux 和类 Unix 操作系统中一种常见的工具包。如果找到,默认情况下将使用版本 3,可以使用 WITH_GTK_2_X 选项强制使用版本 2。 |
WITH_WIN32UI | 开启 | Windows | WinAPI 是 Windows 中一种标准 GUI API。 |
无 | 开启 | macOS | Cocoa 是 macOS 中使用的一个框架。 |
WITH_QT | OFF | 跨平台 | Qt 是一种跨平台 GUI 框架。 |
WITH_OPENGL
(默认值:OFF)
OpenGL 集成可用于绘制以下后端的硬件加速窗口:GTK、WIN32 和 Qt。并且可以实现与 OpenGL 的基本互操作性,请参阅OpenGL 互操作性和OpenGL 支持了解更多详情。
自 OpenCV 4.5.3 起,GTK 后端可以构建为动态加载的插件。可以使用以下选项来控制此机制
选项 | 默认 | 说明 |
---|---|---|
HIGHGUI_ENABLE_PLUGINS | 开启 | 启用或完全禁用插件。 |
HIGHGUI_PLUGIN_LIST | 空 | 要编译为插件的后端名称的逗号或分号分隔列表。支持的名称为gtk、gtk2、gtk3和all。 |
查看 OpenCV 安装概述 以获取独立插件的构建说明。
OpenCV 拥有自己的 DNN 推理模块,该模块具有自己的内置引擎,但也可以使用其他库进行优化的处理。可以在单个构建中启用多个后端。选择在运行时自动或手动进行。
选项 | 默认 | 说明 |
---|---|---|
WITH_PROTOBUF | 开启 | 启用protobuf 库搜索。OpenCV 可以构建自己的库副本或使用外部库。dnn 模块需要此依赖项,如果找不到,模块将被禁用。 |
BUILD_PROTOBUF | 开启 | 构建protobuf的自己的副本。如果您想使用外部库,则必须禁用此选项。 |
PROTOBUF_UPDATE_FILES | OFF | 重新生成所有 .proto 文件。protoc 编译器必须与已使用的 protobuf 版本兼容且已安装。 |
OPENCV_DNN_OPENCL | 开启 | 启用内置 OpenCL 推理后端。 |
WITH_INF_ENGINE | OFF | 从 OpenVINO 2022.1 起已弃用 启用 英特尔推理引擎 (IE) 后端。允许执行 IE 格式(.xml + .bin)中的网络。推理引擎必须安装为 OpenVINO 工具包 的一部分,或作为从源代码编译的独立库。 |
INF_ENGINE_RELEASE | 2020040000 | 从 OpenVINO 2022.1 起已弃用 定义与 OpenVINO 工具包版本关联的推理引擎库版本。必须是 10 位数字字符串,例如用于 OpenVINO 2020.4 的 2020040000。 |
WITH_NGRAPH | OFF | 从 OpenVINO 2022.1 起已弃用 启用英特尔 NGraph 库支持。此库是推理引擎后端的一部分,允许执行从以 OpenCV 支持的多格式文件读取的任意网络:Caffe、TensorFlow、PyTorch、Darknet 等。NGraph 库必须安装,已包含在推理引擎中。 |
WITH_OPENVINO | OFF | 启用英特尔 OpenVINO 工具包支持。应用于 OpenVINO> = 2022.1,而不是 WITH_INF_ENGINE 和 WITH_NGRAPH 。 |
OPENCV_DNN_CUDA | OFF | 启用 CUDA 后端。必须安装 CUDA、CUBLAS 和 CUDNN。 |
WITH_HALIDE | OFF | 使用实验性的 Halide 后端,它可以在运行时为 dnn 层生成优化的代码。必须安装 Halide。 |
WITH_VULKAN | OFF | 启用实验性的 Vulkan 后端。不需要额外的依赖项,但可以使用外部 Vulkan 头文件 (VULKAN_INCLUDE_DIRS )。 |
要安装生成的二进制文件,应配置根位置。默认值取决于发行版,在 Ubuntu 中,它通常设置为 /usr/local
。它可以在配置期间更改
此路径可以相对于当前工作目录,在以下示例中,它将设置为 <absolute-path-to-build>/install
在构建库后,可以使用以下命令将所有文件复制到配置的安装位置
要将二进制文件安装到系统位置(例如 /usr/local
)作为普通用户,需要使用提升的权限运行前一个命令
选项可以用来控制是否安装库的一部分
选项 | 默认 | 说明 |
---|---|---|
INSTALL_C_EXAMPLES | OFF | 从samples/cpp目录安装C++示例源 |
INSTALL_PYTHON_EXAMPLES | OFF | 从samples/python目录安装python示例源 |
INSTALL_ANDROID_EXAMPLES | OFF | 从samples/android目录安装Android示例源 |
INSTALL_BIN_EXAMPLES | OFF | 安装预建的示例的应用程序(必须启用BUILD_EXAMPLES ) |
INSTALL_TESTS | OFF | 安装测试项(必须启用BUILD_TESTS ) |
OPENCV_INSTALL_APPS_LIST | all | 用逗号或分号分隔要安装的预建的应用程序的列表(从apps目录) |
以下选项允许修改组件的安装位置,相对于安装前缀。这些选项的默认值取决于平台和其他选项,请查看cmake/OpenCVInstallLayout.cmake文件了解详情。
选项 | 组件 |
---|---|
OPENCV_BIN_INSTALL_PATH | 应用程序,动态库(win) |
OPENCV_TEST_INSTALL_PATH | 测试应用程序 |
OPENCV_SAMPLES_BIN_INSTALL_PATH | 示例应用程序 |
OPENCV_LIB_INSTALL_PATH | 动态库,导入库(win) |
OPENCV_LIB_ARCHIVE_INSTALL_PATH | 静态库 |
OPENCV_3P_LIB_INSTALL_PATH | 第三方库 |
OPENCV_CONFIG_INSTALL_PATH | cmake配置包 |
OPENCV_INCLUDE_INSTALL_PATH | 头文件 |
OPENCV_OTHER_INSTALL_PATH | 额外的data文件 |
OPENCV_SAMPLES_SRC_INSTALL_PATH | 示例源 |
OPENCV_LICENSES_INSTALL_PATH | 用于包含的第三方组件的许可证 |
OPENCV_TEST_DATA_INSTALL_PATH | 测试数据 |
OPENCV_DOC_INSTALL_PATH | 文档 |
OPENCV_JAR_INSTALL_PATH | 使用Java绑定的JAR文件 |
OPENCV_JNI_INSTALL_PATH | Java绑定的JNI部分 |
OPENCV_JNI_BIN_INSTALL_PATH | Java绑定的JNI部分的Dynamic库 |
以下选项可用于更改常见情况下的安装布局
选项 | 默认 | 说明 |
---|---|---|
INSTALL_CREATE_DISTRIB | OFF | 调整多项内容以生成Windows和Android发行版。 |
INSTALL_TO_MANGLED_PATHS | OFF | 将一个级别添加到多个安装位置以允许并行安装。例如,启用此选项后,将把头文件安装到_ /usr/include/opencv-4.4.0_而不是_/usr/include/opencv4_ |
选项 | 默认 | 说明 |
---|---|---|
OPENCV_ENABLE_NONFREE | OFF | 已知库中包含的一些算法受专利保护,并且默认情况下已禁用。 |
OPENCV_FORCE_3RDPARTY_BUILD | OFF | 一次启用所有BUILD_ 选项。 |
OPENCV_IPP_ENABLE_ALL | OFF | 一次启用所有OPENCV_IPP_ 选项。 |
ENABLE_CCACHE | ON(在类似Unix的平台上) | 启用ccache自动检测。此工具封装编译器调用并缓存结果,可以显着提高重新编译时间。 |
ENABLE_PRECOMPILED_HEADERS | ON(适用于MSVC) | 启用预编译头支持。缩短编译时间。 |
BUILD_DOCS | OFF | 启用文档构建(doxygen、doxygen_cpp、doxygen_python、doxygen_javadoc 目标)。对于 C++ 文档,必须安装 Doxygen。对于 Python 文档,必须安装 Python 和 BeautifulSoup4。对于 Java 文档,必须安装 Javadoc 和 Ant(Java SDK 的一部分)。 |
ENABLE_PYLINT | ON(启用文档或示例时) | 启用运用 Pylint 来检查 Python 脚本(check_pylint 目标)。必须安装 Pylint。 |
ENABLE_FLAKE8 | ON(启用文档或示例时) | 启用运用 Flake8 来检查 Python 脚本(check_flake8 目标)。必须安装 Flake8。 |
BUILD_JAVA | 开启 | 启用 Java 封装构建。必须安装 Java SDK 和 Ant。 |
BUILD_FAT_JAVA_LIB | ON(用于静态的 Android 构建) | 构建单个 opencv_java 动态库,包含与 Java 绑定捆绑在一起的所有库功能。 |
BUILD_opencv_python2 | 开启 | 构建 python2 绑定(已弃用)。必须安装具有开发文件和 numpy 的 Python。 |
BUILD_opencv_python3 | 开启 | 构建 python3 绑定。必须安装具有开发文件和 numpy 的 Python。 |
CAROTENE_NEON_ARCH | '(auto)' | 为胡萝卜素转换 NEON Arch。如果没有设置,它将被自动检测到。如果它设置为 8,则使用 ARMv8(及更高版本)。否则,使用 ARMv7。 |
TODO: 需要独立的教程来介绍绑定构建
一些功能是专门为自动化构建环境(如持续集成和打包系统)添加的。
选项 | 默认 | 说明 |
---|---|---|
ENABLE_NOISY_WARNINGS | OFF | 启用一些编译器警告,这些警告被认为是过多的,即比其他警告的重要性低。这些警告通常会被忽略,但有时可能是值得检查的。 |
OPENCV_WARNINGS_ARE_ERRORS | OFF | 将编译器警告视为错误。构建将被停止。 |
ENABLE_CONFIG_VERIFICATION | OFF | 对于每个启用的依赖项 (WITH_ 选项)验证其是否已被找到并启用 (HAVE_ 变量)。默认情况下,如果找不到依赖项,该功能将被静默关闭,但启用此选项后,cmake 配置会失败。对于需要稳定的库配置且不依赖于环境波动的打包系统而言,它很方便。 |
OPENCV_CMAKE_HOOKS_DIR | 空 | OpenCV 允许通过在每个阶段和子阶段添加自定义挂钩脚本来自定义配置过程。位于此变量设置的目录中的具有预定义名称的 cmake 脚本将在各种配置阶段之前和之后包含在内。文件名示例:CMAKE_INIT.cmake、PRE_CMAKE_BOOTSTRAP.cmake、POST_CMAKE_BOOTSTRAP.cmake 等。其他名称未记录在案,可通过搜索 ocv_cmake_hook 宏调用在项目 cmake 文件中找到这些名称。 |
OPENCV_DUMP_HOOKS_FLOW | OFF | 在每次调用 cmake 挂钩脚本时启用调试消息打印。 |
在 opencv_contrib
中使用以下构建选项,如前所 述,可通过设置 DOPENCV_EXTRA_MODULES_PATH
选项将这些额外模块添加到您的最终产品中。
选项 | 默认 | 说明 |
---|---|---|
WITH_CLP | OFF | 将添加 coinor 线性规划库构建支持,这是 videostab 模块中必需的。请确保安装 coinor-clp 的开发库。 |
BUILD_ANDROID_PROJECTS
BUILD_ANDROID_EXAMPLES
ANDROID_HOME
ANDROID_SDK
ANDROID_NDK
ANDROID_SDK_ROOT
CMAKE_TOOLCHAIN_FILE
WITH_CAROTENE
WITH_KLEIDICV
WITH_CPUFEATURES
WITH_EIGEN
WITH_OPENVX
WITH_DIRECTX
WITH_VA
WITH_LAPACK
WITH_QUIRC
BUILD_ZLIB
BUILD_ITT
WITH_IPP
BUILD_IPP_IW