OpenCV 4.11.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++ 库将在 Debug 模式下使用,例如,在向量元素访问期间将进行边界检查。
可以使用CV_DISABLE_OPTIMIZATION
选项禁用多种优化
BUILD_SHARED_LIBS
选项控制是生成动态库(.dll、.so、.dylib)还是静态库(.a、.lib)。默认值取决于目标平台,在大多数情况下为ON
。
示例
ENABLE_PIC
设置 CMAKE_POSITION_INDEPENDENT_CODE 选项。它启用或禁用“位置无关代码”的生成。在构建动态库或打算链接到动态库的静态库时,必须启用此选项。默认值为ON
。
OPENCV_GENERATE_PKGCONFIG
选项启用与标准 CMake 包一起生成.pc
文件。此文件对于不使用 CMake 进行构建的项目很有用。
示例
.pc
文件可能包含不完整的第三方依赖项列表,并且可能在某些配置中不起作用,尤其是在静态构建中。此功能自 4.x 版本起不再正式支持,默认情况下已禁用。有两种类型的测试:精度测试 (opencv_test_*
) 和性能测试 (opencv_perf_*
)。测试和应用程序默认启用。示例默认不构建,应显式启用。
相应的 *cmake* 选项
每个模块都是modules
目录的子目录。可以禁用一个模块
另一种选择是仅构建指定的模块及其所有依赖模块。
在这个例子中,我们请求了3个模块,配置脚本自动确定了所有依赖项。
如果配置脚本无法从互联网下载额外的库和文件,它将尝试下载,如果失败,相应的特性将被关闭。在某些情况下可能会发生配置错误。默认情况下,所有文件首先下载到<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 | N/A | 在代码中启用一些特性来辅助内存安全检查器。 |
ENABLE_BUILD_HARDENING | GCC、Clang、MSVC | 启用减少代码漏洞可能性的编译器选项。 |
ENABLE_LTO | GCC、Clang、MSVC | 启用链接时优化 (LTO)。 |
ENABLE_THIN_LTO | Clang | 启用精简 LTO,它将中间位码合并到二进制文件中,允许使用者稍后优化其应用程序。 |
OPENCV_ALGO_HINT_DEFAULT | 任何 | 设置默认 OpenCV 实现提示值:ALGO_HINT_ACCURATE 或 ALGO_HINT_APROX 。危险!此选项全局更改行为,并可能影响许多算法的准确性。 |
可以使用以下选项为每个函数启用 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
文件中的源代码以了解详情。
待办事项:其他选项: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 | ON | BUILD_PNG |
JPEG | WITH_JPEG | ON | BUILD_JPEG |
TIFF | WITH_TIFF | ON | BUILD_TIFF |
WEBP | WITH_WEBP | ON | BUILD_WEBP |
使用OpenJPEG的JPEG2000 | WITH_OPENJPEG | ON | BUILD_OPENJPEG |
使用JasPer的JPEG2000 | WITH_JASPER | ON (见注释) | BUILD_JASPER |
EXR | WITH_OPENEXR | ON | BUILD_OPENEXR |
JPEG XL | WITH_JPEGXL | ON | 不支持。(见注释) |
读取这些格式图像所需的所有库都包含在OpenCV中,如果在配置阶段未找到,则会自动构建。相应的BUILD_*
选项将强制构建和使用自有库,它们在某些平台(例如Windows)上默认启用。
BUILD_JPEGXL
。WITH_GDAL
(默认:OFF)
GDAL是一个更高级别的库,支持读取多种文件格式,包括PNG、JPEG和TIFF。它在打开文件时将具有更高的优先级,并可以覆盖其他后端。此库将使用cmake包机制进行搜索,请确保已正确安装它,或手动设置GDAL_DIR
环境或cmake变量。
WITH_GDCM
(默认:OFF)
通过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允许运行作为字符串传递给cv::VideoCapture和cv::VideoWriter对象的任意GStreamer管道。
各种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 | OFF | IIDC IEEE1394 使用DC1394库支持 |
WITH_OPENNI | OFF | OpenNI 可用于从深度感应摄像机捕获数据。已弃用。 |
WITH_OPENNI2 | OFF | OpenNI2 可用于从深度感应摄像机捕获数据。 |
WITH_PVAPI | OFF | PVAPI 是Prosilica GigE摄像机的旧版SDK。已弃用。 |
WITH_ARAVIS | OFF | Aravis 库用于使用Genicam摄像机进行视频采集。 |
WITH_XIMEA | OFF | XIMEA 摄像机支持。 |
WITH_XINE | OFF | XINE 库支持。 |
WITH_LIBREALSENSE | OFF | RealSense 摄像机支持。 |
WITH_MFX | OFF | MediaSDK 库可用于原始视频流的硬件加速解码和编码。 |
WITH_GPHOTO2 | OFF | GPhoto 库可用于从摄像机捕获帧。 |
WITH_ANDROID_MEDIANDK | ON | 自 Android API 级别 21 起,即可使用MediaNDK 库。 |
从 4.1.0 版本开始,一些 videoio 后端可以作为插件构建,从而打破了对第三方库的严格依赖,并使它们在运行时成为可选的。可以使用以下选项来控制此机制
选项 | 默认 | 描述 |
---|---|---|
VIDEOIO_ENABLE_PLUGINS | ON | 完全启用或禁用插件。 |
VIDEOIO_PLUGIN_LIST | 空 | 用逗号或分号分隔的后端名称列表,将被编译为插件。支持的名称为 ffmpeg、gstreamer、msmf、mfx 和 all。 |
有关独立插件构建说明,请查看OpenCV 安装概述。
一些 OpenCV 算法可以使用多线程来加速处理。OpenCV 可以与一个线程后端一起构建。
后端 | 选项 | 默认 | 平台 | 描述 |
---|---|---|---|---|
pthreads | WITH_PTHREADS_PF | ON | 类 Unix | 基于pthreads 库的默认后端在 Linux、Android 和其他类 Unix 平台上可用。线程池在 OpenCV 中实现,并且可以使用环境变量OPENCV_THREAD_POOL_* 进行控制。有关详细信息,请查看modules/core/src/parallel_impl.cpp文件中的源代码。 |
并发 | N/A | ON | Windows | 在 Windows 上可以使用并发运行时,并且除非启用其他后端,否则将在支持的平台上自动启用。 |
GCD | N/A | ON | Apple | Grand Central Dispatch 在 Apple 平台上可用,并且除非启用其他后端,否则将自动启用。使用全局系统线程池。 |
TBB | WITH_TBB | OFF | 多个 | Threading Building Blocks 是一个用于并行编程的跨平台库。 |
OpenMP | WITH_OPENMP | OFF | 多个 | OpenMP API 依赖于编译器支持。 |
HPX | WITH_HPX | OFF | 多个 | High Performance ParallelX 是一个实验性后端,更适用于多处理器环境。 |
BUILD_TBB
选项启用此功能。从 4.5.2 版本开始,OpenCV 支持动态加载的线程后端。目前仅支持单独的编译过程:首先必须使用某些默认并行后端(例如 pthreads)构建 OpenCV,然后构建每个插件并将生成的二进制文件复制到lib或bin文件夹。
选项 | 默认 | 描述 |
---|---|---|
PARALLEL_ENABLE_PLUGINS | ON | 启用插件支持,如果禁用此选项,OpenCV 将不会尝试加载任何内容。 |
有关独立插件构建说明,请查看OpenCV 安装概述。
OpenCV 依赖于各种 GUI 库来绘制窗口。
选项 | 默认 | 平台 | 描述 |
---|---|---|---|
WITH_GTK | ON | Linux | GTK 是 Linux 和类 Unix 操作系统中常用的工具包。如果找到,默认情况下将使用版本 3,可以使用WITH_GTK_2_X 选项强制使用版本 2。 |
WITH_WIN32UI | ON | Windows | WinAPI 是 Windows 中标准的 GUI API。 |
N/A | ON | macOS | Cocoa 是 macOS 中使用的框架。 |
WITH_QT | OFF | 跨平台 | Qt 是一个跨平台 GUI 框架。 |
WITH_FRAMEBUFFER | OFF | Linux | 使用Linux framebuffer 的实验性后端。功能有限,但不需要依赖项。 |
WITH_FRAMEBUFFER_XVFB | OFF | Linux | 启用与xvfb 工具兼容的 FRAMEBUFFER 后端的特殊输出模式。需要一些 X11 头文件。 |
WITH_OPENGL
(默认:OFF)
OpenGL 集成可用于使用以下后端绘制硬件加速窗口:GTK、WIN32 和 Qt。并启用与 OpenGL 的基本互操作性,有关详细信息,请参见OpenGL 互操作性和OpenGL 支持。
从 OpenCV 4.5.3 开始,GTK 后端可以作为动态加载的插件构建。可以使用以下选项来控制此机制
选项 | 默认 | 描述 |
---|---|---|
HIGHGUI_ENABLE_PLUGINS | ON | 完全启用或禁用插件。 |
HIGHGUI_PLUGIN_LIST | 空 | 用逗号或分号分隔的后端名称列表,将被编译为插件。支持的名称为 gtk、gtk2、gtk3 和 all。 |
有关独立插件构建说明,请查看OpenCV 安装概述。
OpenCV 拥有自己的 DNN 推理模块,该模块具有自己的内置引擎,但也可以使用其他库进行优化处理。可以在单个构建中启用多个后端。选择在运行时自动或手动进行。
选项 | 默认 | 描述 |
---|---|---|
WITH_PROTOBUF | ON | 启用protobuf 库搜索。OpenCV 可以构建自己的库副本,也可以使用外部库。dnn模块需要此依赖项,如果找不到,则该模块将被禁用。 |
BUILD_PROTOBUF | ON | 构建自己的 protobuf 副本。如果要使用外部库,则必须禁用此选项。 |
PROTOBUF_UPDATE_FILES | OFF | 重新生成所有 .proto 文件。必须安装与所用 protobuf 版本兼容的 protoc 编译器。 |
OPENCV_DNN_OPENCL | ON | 启用内置 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
。可以在配置过程中更改。
此路径可以相对于当前工作目录,在以下示例中,它将设置为 <绝对路径到构建目录>/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 | 额外数据文件 |
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 部分的动态库 |
以下选项可用于更改常见场景的安装布局
选项 | 默认 | 描述 |
---|---|---|
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 目标)。必须安装 Doxygen 才能构建 C++ 文档。必须安装 Python 和 BeautifulSoup4 才能构建 Python 文档。必须安装 Javadoc 和 Ant 才能构建 Java 文档(Java SDK 的一部分)。 |
ENABLE_PYLINT | ON (当启用文档或示例时) | 使用 Pylint 启用 Python 脚本检查 (check_pylint 目标)。必须安装 Pylint。 |
ENABLE_FLAKE8 | ON (当启用文档或示例时) | 使用 Flake8 启用 Python 脚本检查 (check_flake8 目标)。必须安装 Flake8。 |
BUILD_JAVA | ON | 启用 Java 包装器构建。必须安装 Java SDK 和 Ant。 |
BUILD_FAT_JAVA_LIB | ON (对于静态 Android 构建) | 构建单个 opencv_java 动态库,其中包含与 Java 绑定捆绑的所有库功能。 |
BUILD_opencv_python2 | ON | 构建 python2 绑定(已弃用)。必须安装带有开发文件的 Python 和 numpy。 |
BUILD_opencv_python3 | ON | 构建 python3 绑定。必须安装带有开发文件的 Python 和 numpy。 |
待办事项:需要单独的教程来介绍绑定构建。
已添加一些专门用于自动化构建环境(如持续集成和打包系统)的功能。
选项 | 默认 | 描述 |
---|---|---|
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 hook 脚本调用时打印调试消息。 |
如下构建选项用于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