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并行快速傅里叶变化支持
-
FFT:快速傅里叶变换
-
cFFT官方:clFFT: OpenCL 快速傅立叶变换 (FFT) (clmathlibraries.github.io)
-
-
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:启用预编译头文章来源:https://www.toymoban.com/news/detail-737232.html
-
EBABLE_SOLUTION_FOLDERS:在VS或其他IDE中启用解决方案文件夹文章来源地址https://www.toymoban.com/news/detail-737232.html
到了这里,关于OPENCV 编译选项以及解释的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!