cmake编译以及模块介绍,后面遇到没有的会继续再补充

  • CMAKE_BUILD_TYPE:指定构建类型,如Debug、Release等。

  • CMAKE_INSTALL_PREFIX:指定安装目录。

  • BUILD_SHARED_LIBS:设置为ON时,构建共享库;设置为OFF时,构建静态库。

  • BUILD_WITH_STATIC_CTR:当为ON是,构建静态运行时库(MT/MTd),设置为OFF时,构建动态运行时库(MD/MDd)

  • OPENCV_EXTRA_MODULES_PATH:指定额外模块的路径,用于构建OpenCV的扩展模块。

  • BUILD_opencv_world:设置为ON时,构建包含所有模块的单个动态库(opencv_world)。

  • BUILD_opencv_python:设置为ON时,构建Python绑定。

  • BUILD_opencv_java:设置为ON时,构建Java绑定。

  • BUILD_opencv_apps:设置为ON时,构建OpenCV示例应用程序。

  • BUILD_opencv_calib3d:设置为ON时,构建相机标定和三维重建模块。

    • Calibration(校准)加3D这两个词的组合缩写。这个模块主要是相机校准和三维重建相关的内容。基本的多视角几何算法,单个立体摄像头标定,物体姿态估计,立体相似性算法,3D信息的重建等等。提供了摄像机标定、立体视觉和三维重建的功能,包括相机参数估计、立体匹配、三维点云重建等。

  • BUILD_opencv_core:设置为ON时,构建核心功能模块。

    • OpenCV基本数据结构

    • 动态数据结构

    • 绘图函数

    • 数组操作相关函数

    • 辅助功能与系统函数和宏

    • 与OpenGL的互操作

  • BUILD_opencv_dnn:设置为ON时,构建深度学习模块。

    • 图像分类;

    • 目标检测;

    • 图像分割;

    • 文字检测和识别;

    • 姿态估计;

    • 深度估计

    • 人脸验证和检测;

    • 人体重新识别;

  • BUILD_opencv_features2d:设置为ON时,构建特征检测和描述模块。

    • 特征检测和描述

    • 特征检测器(Feature Detectors)通用接口

    • 描述符提取器(Descriptor Extractors)通用接口

    • 描述符匹配器(Descriptor Matchers)通用接口

    • 通用描述符(Generic Descriptor)匹配器通用接口

    • 关键点绘制函数和匹配功能绘制函数

  • BUILD_opencv_flann:设置为ON时,构建快速最近邻搜索模块。

  • BUILD_opencv_gapi:设置为ON时,构建通用图像处理模块。

  • BUILD_opencv_highgui:设置为ON时,构建图形用户界面模块。

    • 媒体的I / O输入输出

    • 视频捕捉

    • 图像和视频的编码解码

    • 图形交互界面的接口等内容

    • 关键点绘制函数和匹配功能绘制函数

    • 关键点绘制函数和匹配功能绘制函数

  • BUILD_opencv_imgcodecs:设置为ON时,构建图像编解码模块。

  • BUILD_opencv_imgproc:设置为ON时,构建图像处理模块。

  • BUILD_opencv_ml:设置为ON时,构建机器学习模块,基本上是统计模型和分类算法。

    • 统计模型 (Statistical Models)

    • 一般贝叶斯分类器 (Normal Bayes Classifier)

    • K-近邻 (K-NearestNeighbors)

    • 支持向量机 (Support Vector Machines)

    • 决策树 (Decision Trees)

    • 提升(Boosting)

    • 梯度提高树(Gradient Boosted Trees)

    • 随机树 (Random Trees)

    • 超随机树 (Extremely randomized trees)

    • 期望最大化 (Expectation Maximization)

    • 神经网络 (Neural Networks)

    • MLData

  • BUILD_opencv_objdetect:设置为ON时,构建目标检测模块。

    • 包含Cascade Classification(级联分类)和Latent SVM这两个部分,包括Haar特征分类器、级联分类器等。

  • BUILD_opencv_photo:设置为ON时,构建图像修复、去噪点和增强模块。

  • BUILD_opencv_stitching:设置为ON时,构建图像拼接模块。

    • 拼接流水线

    • 特点寻找和匹配图像

    • 估计旋转

    • 自动校准

    • 图片歪斜

    • 接缝估测

    • 曝光补偿

    • 图片混合

  • BUILD_opencv_video:设置为ON时,构建视频分析模块。

  • BUILD_opencv_videoio:设置为ON时,构建视频输入/输出模块。

  • BUILD_opencv_videostab:设置为ON时,构建视频稳定模块。

  • BUILD_ITT:用于构建Intel® Trace Collector (ITC) 的支持。

    • Intel Trace Collector是一种用于分析和优化并行和多线程应用程序的工具,它可以帮助开发人员识别和解决并行程序中的性能问题。通过使用BUILD_ITT选项,可以选择是否编译和构建OpenCV与Intel Trace Collector的集成支持,以便在开发和调试OpenCV应用程序时使用Intel Trace Collector进行性能分析和优化。

  • BUILD_IPP_IW:选项,用以inter 的ipp加速模块

  • BUILD_opencv_ts:用于构建OpenCV的测试模块(Test Suite)。

    • 测试模块是用于验证OpenCV库的正确性和稳定性的一组测试用例。这些测试用例可以帮助开发人员在开发和修改OpenCV代码时进行自动化测试,以确保代码的正确性和功能的稳定性。通过使用BUILD_opencv_ts选项,可以选择是否编译和构建OpenCV的测试模块。

  • BUILD_opencv_objc_building_generator:用于生成Objective-C绑定的构建文件。

    • Objective-C绑定是为了在iOS和macOS平台上使用OpenCV库时,能够方便地与Objective-C代码进行交互和集成。当设置BUILD_opencv_objc_building_generator为ON时,CMake会生成Objective-C绑定所需的构建文件。这些构建文件包括Objective-C的头文件和源文件,以及用于生成Objective-C绑定的辅助工具。通过启用这个选项,开发者可以在iOS和macOS平台上使用Objective-C语言来调用OpenCV库中的函数和类,从而实现图像处理和计算机视觉的功能。

  • WITH_CUDA:设置为ON时,启用CUDA支持。

  • WITH_TBB:设置为ON时,启用Intel TBB支持。

  • WITH_OPENCL:设置为ON时,启用OpenCL支持。

    • OpenCL是一种开放的并行计算框架,可以利用多个计算设备(如CPU、GPU等)进行并行计算,从而加速图像处理和计算机视觉算法的执行。如果设置WITH_OPENCL为ON,则会启用OpenCL支持;如果设置为OFF,则不会启用OpenCL支持。

    • OPENCL相关选项:

      • OPENCL_FOUNE:是否查找使用opencl

      • WITH_OPENCL:启用OPENCL支持

      • OPENCV_DNN_OPENCL:用于控制是否启用OpenCL加速的深度学习模块(DNN)

        • OpenCV的DNN模块提供了深度学习推理的功能,可以加载和执行训练好的深度学习模型。而OpenCL是一种并行计算框架,可以利用多个计算设备(如CPU、GPU等)进行并行计算,从而加速深度学习模型的推理过程。

        • 如果设置OPENCV_DNN_OPENCL为ON,则会启用OpenCL加速的DNN模块;如果设置为OFF,则禁用OpenCL加速的DNN模块。启用OpenCL加速可以提高深度学习模型推理的速度,特别是在使用支持OpenCL的GPU时。但需要注意的是,启用OpenCL加速需要确保系统支持OpenCL,并且安装了相应的OpenCL驱动程序。如果系统不支持OpenCL或者没有安装OpenCL驱动程序,那么即使设置了OPENCV_DNN_OPENCL为ON,也无法启用OpenCL加速的DNN模块。

      • WITH_OPENCLAMDBLAS:启用AMD提供的的 OPENCL GPU并行BLAS线性代数库支持

        • BLAS(basic linear algebra subroutine)(基本线性代数子程序)是提供用于执行基本向量和矩阵运算的标准构建块的例程。1 级 BLAS 执行标量、矢量和矢量-矢量运算,2 级 BLAS 执行矩阵-矢量运算,3 级 BLAS 执行矩阵-矩阵运算。

        • AMD_BLAS官方: 基本线性代数子程序 (BLAS) 库 |阿德 (amd.com)

      • WITH_OPENCLAMDFFT:启用AMD提供的 OPENCL GPU并行快速傅里叶变化支持

      • WITH_OPENCL_D3D11_NV:启用NVIDIA提供的OPENCL D3D11 GPU 并行计算支持

      • WITH_OPENCL_SVM:OPENCL共享虚拟内存支持

  • WITH_OPENGL:设置为ON时,启用OpenGL支持。

  • WITH_QT:设置为ON时,启用Qt支持。

  • ENABLE_PRECOMPILED_HEADERS:设置为ON时,启用预编译头文件。

  • CV_TRACE:用于启用或禁用OpenCV函数调用的跟踪功能。

    • 当CV_TRACE选项被启用时,OpenCV库会在运行时输出函数调用的跟踪信息,包括函数名称、参数和返回值等。这对于调试和性能分析非常有用,可以帮助开发人员了解代码的执行流程和性能瓶颈。通过启用CV_TRACE选项,可以在OpenCV编译时将跟踪功能添加到库中。在运行时,可以使用相应的API函数来控制跟踪的开启和关闭,以及设置跟踪输出的目标(如控制台、日志文件等)。这样,开发人员可以根据需要在调试和性能优化过程中使用CV_TRACE选项来获取更详细的函数调用信息。

  • ENABLE_LTO:用于启用或禁用链接时优化(Link Time Optimization,简称LTO)。

    • 链接时优化是一种编译器优化技术,它在链接阶段对整个程序进行优化,而不仅仅是对单个源文件进行优化。通过启用LTO,编译器可以对整个OpenCV库进行全局优化,从而提高代码的执行效率和性能。如果设置ENABLE_LTO为ON,则会启用链接时优化;如果设置为OFF,则禁用链接时优化。启用LTO可能会增加编译时间和内存消耗,但可以提高生成的OpenCV库的执行效率。因此,根据具体需求和编译环境,可以选择是否启用ENABLE_LTO选项。

  • ENABLE_IPC:生成与位置无关的代码(对于共享库是必需的)

  • ENABLE_PRECOMPILED_HEADERS:启用预编译头

  • EBABLE_SOLUTION_FOLDERS:在VS或其他IDE中启用解决方案文件夹

Logo

音视频技术社区,一个全球开发者共同探讨、分享、学习音视频技术的平台,加入我们,与全球开发者一起创造更加优秀的音视频产品!

更多推荐