OpenCV4.X库功能全解---个人笔记
文章目录
- 前言
- 1.Core核心功能
- 1.1 基本数据类型和结构:
- 1.2 数组操作:
- 1.3 数学函数:
- 1.4 随机数生成:
- 1.5 线性代数运算:
- 1.6 常用数据结构和算法:
- 1.7 XML/YAML文件读写:
- 1.8 错误处理:
- 1.9时间测量:
- 2.imgproc图像处理
- 2.1 图像滤波:
- 2.2 几何变换:
- 2.3 图像金字塔:
- 2.4 图像阈值化:
- 2.5边缘检测:
- 2.6 形态学操作:
- 2.7 颜色空间转换:
- 2.8 直方图:
- 2.9 图像修复:
- 2.10 模板匹配:
- 2.11 轮廓检测与分析:
- 2.12 霍夫变换:
- 2.13 图像分割:
- 2.14 绘图函数:
- 2.15 傅里叶变换:
- 3. imgcodecs.图像文件读写
- 3.1 图像读取:
- 3.2 图像写入:
- 3.3 编码参数设置:
- 3.4 图像编码和解码:
- 3.5 多页图像支持:
- 3.6 图像质量评估:
- 4 Videoio视频 I/O
- 4.1 视频捕获:
- 4.2 视频保存:
- 4.3 视频流读取:
- 4.4 视频流写入:
- 4.5 视频帧获取和设置:
- 4.6 摄像头参数设置:
- 4.7 多平台支持:
- 4.8 视频编解码器支持:
- 5 highgui高级GUI
- 5.1 图像显示:
- 5.2 窗口管理:
- 5.3 用户交互:
- 5.4 轨迹条(滑动条):
- 5.5 图像文件I/O:
- 5.6 视频显示:
- 5.7 基本绘图功能:
- 5.9 跨平台支持:
- 6 Video视频分析
- 6.1 视频捕获:
- 6.2 视频编解码:
- 6.3 视频处理:
- 6.4 对象跟踪:
- 6.5 光流计算:
- 6.6 视频分析:
- 6.7 摄像头接口:
- 6.8 视频帧处理工具:
- 6.9时间戳处理:
- 7 calib3d相机校准和3D重建
- 7.1 相机校准:
- 7.2 立体视觉:
- 7.3 姿态估计:
- 7.4 三维重建:
- 7.5 畸变校正:
- 7.6 图像拼接:
- 7.7 结构光:
- 7.8 外参估计:
- 8 features2d 特征框架
- 8.1 特征检测:
- 8.2 特征描述:
- 8.3 特征匹配:
- 8.4 关键点检测和描述:
- 8.5 图像对齐和拼接:
- 8.6 局部特征提取和匹配:
- 8.7 多尺度特征检测:
- 8.8 特征点绘制:
- 8.9 特征匹配过滤:
- 8.10 自适应特征检测:
- 9 objdetect目标检测
- 9.1 对象检测:
- 9.2 HOG特征和SVM检测:
- 9.3 人脸检测和识别:
- 9.4 QR码检测:
- 9.5 基于模板的对象检测:
- 9.6 条形码检测:
- 9.7 自定义分类器训练:
- 9.8 对象跟踪:
- 9.9 人脸标志点检测:
- 10 dnn深度神经网络模块
- 10.1 深度学习模型加载和推理:
- 10.2 支持的层类型:
- 10.3 预处理和后处理:
- 10.4 模型优化:
- 10.5 兼容性和硬件加速:
- 10.6 模型的转换工具:
- 10.7 端到端应用:
- 10.8 自定义层支持:
- 10.9 示例和预训练模型:
- 10.10 模型部署:
- 11 ml机器学习
- 11.1 分类算法:
- 11.2 回归算法:
- 11.3 聚类算法:
- 11.4 贝叶斯分类:
- 11.5 神经网络:
- 11.6 决策树:
- 11.7 随机森林:
- 11.8 Boosting算法:
- 11.9 SVM(支持向量机):
- 11.10 核函数:
- 11.11 模型评估和交叉验证:
- 11.12 特征选择:
- 11.13 数据预处理:
- 11.14 概率模型:
- 11.15 集成学习:
- 12 flann.多维空间中的聚类和搜索
- 12.1 快速最近邻搜索:
- 12.2 索引构建和查询:
- 12.3 参数自动调优:
- 12.4 多维数据支持:
- 12.5 可扩展性:
- 12.6 高效的内存管理:
- 12.7 并行处理:
- 12.8 跨平台支持:
- 13 photo计算摄影
- 13.1 去噪算法:
- 13.2 图像修复(Inpainting):
- 13.3 HDR(高动态范围成像):
- 13.4 色调映射(Tone Mapping):
- 13.5 无缝克隆(Seamless Cloning):
- 13.6 颜色转移(Color Transfer):
- 13.7 曝光补偿(Exposure Compensation):
- 13.8 去闪烁(DeFlicker):
- 13.9 边缘保持滤波:
- 14 stitching.图像拼接
- 14.1 图像拼接:
- 14.2 特征检测与匹配:
- 14.3 图像配准:
- 14.4 曝光补偿:
- 14.5 图像混合:
- 14.6 相机参数估计:
- 14.7 图像矫正:
- 14.8 旋转和缩放:
- 14.9 多通道图像支持:
- 14.10 GPU加速:
- 15 G-API.图形 API
- 15.1 图形处理管道(Graph API):
- 15.2 延迟计算(Lazy Evaluation):
- 15.3 跨平台和设备支持:
- 15.4 自定义算子:
- 15.5 优化的内存管理:
- 15.6 易于集成:
- 15.7 高层次抽象:
- 15.8 支持多种后端:
- 15.9 流水线并行处理:
- 15.10 可视化调试:
- 16.额外模块:
前言
1.Core核心功能
1.1 基本数据类型和结构:
包括矩阵(Mat)、标量(Scalar)、点(Point)、大小(Size)、矩形(Rect)等基本数据结构,用于图像处理中的各种操作。
1.2 数组操作:
支持多维数组的创建、访问、操作和变换,包括基本的矩阵运算(加减乘除、转置、求逆、求行列式等)。
1.3 数学函数:
提供了各种数学函数,包括基础的算术运算、常见的数学函数(如三角函数、指数和对数函数)、统计函数(如均值、方差、直方图等)。
1.4 随机数生成:
提供了各种随机数生成器,可以用于图像处理中的噪声添加、随机采样等操作。
1.5 线性代数运算:
包括矩阵分解(如SVD、Cholesky分解等)和线性方程组的求解。
1.6 常用数据结构和算法:
如查找表、优先队列、k-最近邻(k-NN)搜索等。
1.7 XML/YAML文件读写:
提供了对XML和YAML格式文件的读写支持,可以保存和加载模型、参数等数据。
1.8 错误处理:
包括错误处理机制和调试工具。
1.9时间测量:
提供了用于时间测量的函数,可以用于性能分析和优化。
2.imgproc图像处理
2.1 图像滤波:
包括各种图像滤波器,如均值滤波、高斯滤波、中值滤波、双边滤波等,用于图像平滑和去噪。
2.2 几何变换:
包括图像的缩放、旋转、平移、仿射变换和透视变换等。
2.3 图像金字塔:
支持图像的高斯金字塔和拉普拉斯金字塔操作,用于多尺度图像处理。
2.4 图像阈值化:
包括简单阈值、自适应阈值和Otsu阈值等,用于图像分割。
2.5边缘检测:
包括Sobel算子、Scharr算子、Laplacian算子和Canny边缘检测等。
2.6 形态学操作:
包括腐蚀、膨胀、开操作、闭操作、形态学梯度、顶帽、黑帽等,用于图像形态学处理。
2.7 颜色空间转换:
支持多种颜色空间的转换,如BGR与灰度图、HSV、Lab、YUV等之间的转换。
2.8 直方图:
包括直方图计算、直方图均衡化、直方图比较和反向投影等。
2.9 图像修复:
包括图像的内插和外推,用于修复图像中的缺陷。
2.10 模板匹配:
用于在图像中搜索和定位模板图像。
2.11 轮廓检测与分析:
包括轮廓检测、轮廓特征提取(如周长、面积、矩、边界框等)、轮廓近似和凸包计算等。
2.12 霍夫变换:
用于检测直线和圆,如霍夫线变换和霍夫圆变换。
2.13 图像分割:
包括分水岭算法、GrabCut算法等,用于图像的前景背景分割。
2.14 绘图函数:
用于在图像上绘制基本图形,如线条、矩形、圆形、多边形、文本等。
2.15 傅里叶变换:
支持图像的傅里叶变换和逆傅里叶变换,用于频域分析。
3. imgcodecs.图像文件读写
3.1 图像读取:
支持从文件中读取图像。可以读取各种格式的图像文件,如JPEG、PNG、TIFF、BMP、WebP等。
3.2 图像写入:
支持将图像保存到文件中。可以将图像保存为不同格式的文件,如JPEG、PNG、TIFF、BMP、WebP等。
3.3 编码参数设置:
在保存图像时,可以指定各种编码参数,如JPEG的压缩质量、PNG的压缩级别等。
3.4 图像编码和解码:
支持将图像数据编码为内存中的特定格式(如JPEG、PNG)或从内存中的特定格式解码为图像数据。
3.5 多页图像支持:
支持读取和写入多页TIFF文件。
3.6 图像质量评估:
提供了图像的质量评估函数,用于在编码过程中控制图像质量和文件大小的平衡。
4 Videoio视频 I/O
4.1 视频捕获:
通过摄像头、视频文件或网络流捕获视频帧。支持多种格式和编码类型。
4.2 视频保存:
将视频帧保存为视频文件,支持多种编码器和文件格式,如AVI、MP4等。
4.3 视频流读取:
读取和解码视频文件或视频流中的帧,用于视频分析和处理。
4.4 视频流写入:
编码和写入视频帧到视频文件或视频流,支持设置编码参数和输出格式。
4.5 视频帧获取和设置:
获取和设置视频流中的帧属性,如帧宽度、帧高度、帧率、帧计数等。
4.6 摄像头参数设置:
设置摄像头的参数,如曝光、亮度、对比度、饱和度等。
4.7 多平台支持:
支持多种操作系统和平台,包括Windows、Linux和macOS。
4.8 视频编解码器支持:
支持多种视频编解码器,如H.264、MPEG-4、MJPEG等。
5 highgui高级GUI
5.1 图像显示:
使用cv::imshow函数在窗口中显示图像。可以创建多个命名窗口来显示不同的图像。
5.2 窗口管理:
1.使用cv::namedWindow创建命名窗口。
2使用cv::destroyWindow或cv::destroyAllWindows关闭一个或所有窗口。
3.设置窗口属性,如窗口大小、位置和自动大小调整。
5.3 用户交互:
1.使用cv::waitKey函数等待键盘输入,可以捕捉用户的按键操作。
2.使用cv::setMouseCallback函数设置鼠标回调,处理鼠标事件,如单击、拖动等。
5.4 轨迹条(滑动条):
1.使用cv::createTrackbar函数在窗口中创建轨迹条(滑动条),用于调整参数并实时查看效果。
5.5 图像文件I/O:
1.使用cv::imread函数读取图像文件,支持多种图像格式如JPEG、PNG、BMP等。
2.使用cv::imwrite函数保存图像文件。
5.6 视频显示:
使用cv::imshow函数显示视频帧,与videoio模块结合使用,可以实时显示摄像头捕获的视频流或视频文件的内容。
5.7 基本绘图功能:
提供绘制线条、矩形、圆、文字等基本绘图功能,可以在显示图像或视频帧上叠加图形和文字。
## 5.8 简单GUI元素:
提供一些基本的GUI元素,如按钮和复选框(在某些版本中可用)。
5.9 跨平台支持:
支持在不同操作系统(如Windows、Linux、macOS)上提供一致的图形界面功能。
6 Video视频分析
6.1 视频捕获:
1.使用cv::VideoCapture类从摄像头、视频文件或图像序列中捕获视频帧。
2.支持各种视频文件格式(如AVI、MP4)和图像序列格式。
6.2 视频编解码:
1.使用cv::VideoWriter类将图像序列写入视频文件。
2.支持多种视频编解码器(如MJPEG、H.264)。
6.3 视频处理:
1.提供函数进行视频帧的处理,如背景减除、光流计算、对象跟踪等。
2.支持多种视频处理算法,如KNN
、MOG2
背景减除算法。
6.4 对象跟踪:
提供多种对象跟踪算法,如KLT(Kanade-Lucas-Tomasi)跟踪器、CSRT、KCF等。
6.5 光流计算:
1/使用cv::calcOpticalFlowPyrLK等函数计算稠密或稀疏光流。
支持多种光流计算方法,如Farneback
光流法。
6.6 视频分析:
1.提供运动检测、前景分割等视频分析功能。
2.支持统计视频中对象的运动轨迹和变化情况。
6.7 摄像头接口:
1.支持多种摄像头接口,如USB摄像头、IP摄像头。
2.提供摄像头参数设置和查询功能。
6.8 视频帧处理工具:
提供对视频帧进行基本图像处理的工具,如缩放、旋转、裁剪等。
6.9时间戳处理:
支持获取视频帧的时间戳,以便进行同步处理或分析。
7 calib3d相机校准和3D重建
7.1 相机校准:
1.提供多种相机校准方法,用于估算相机内参和畸变系数,如cv::calibrateCamera、cv::fisheye::calibrate。
2.支持单目相机校准和双目相机校准(立体校准)。
7.2 立体视觉:
1.提供立体匹配算法,如cv::StereoBM、cv::StereoSGBM,用于计算视差图。
2.支持立体整流(stereo rectification),如cv::stereoRectify。
7.3 姿态估计:
1.使用cv::solvePnP、cv::solvePnPRansac等函数根据2D图像点和3D物体点估算相机姿态。
2.提供cv::Rodrigues函数在旋转矩阵和旋转向量之间转换。
7.4 三维重建:
1.使用cv::reprojectImageTo3D函数根据视差图重建三维点云。
2.提供基础矩阵、单应矩阵计算,如cv::findFundamentalMat、cv::findHomography。
7.5 畸变校正:
1.提供函数用于矫正相机镜头的畸变,如cv::undistort、cv::initUndistortRectifyMap。
2.支持鱼眼镜头的畸变校正,如cv::fisheye::undistortImage。
7.6 图像拼接:
提供基于特征点的图像拼接功能,如全景图像的创建。
7.7 结构光:
支持结构光扫描,用于三维重建。
7.8 外参估计:
提供函数估计两个相机之间的旋转和平移,如cv::stereoCalibrate。
8 features2d 特征框架
8.1 特征检测:
提供多种特征检测算法,如Harris角点检测、FAST、STAR、SIFT、SURF、ORB等,用于检测图像中的关键点。
8.2 特征描述:
提供多种特征描述子算法,如BRIEF、SIFT、SURF、ORB、FREAK等,用于计算图像关键点的描述子。
8.3 特征匹配:
1.提供多种特征匹配算法,如BFMatcher(Brute-Force Matcher)和FLANN-based Matcher,用于匹配不同图像中的特征点。
2.支持KNN(k近邻)匹配和暴力匹配方法。
8.4 关键点检测和描述:
提供统一的接口,如cv::Feature2D类,可以同时进行特征检测和描述,方便使用。
8.5 图像对齐和拼接:
使用特征点匹配实现图像对齐和拼接,如全景图像的创建。
8.6 局部特征提取和匹配:
支持在图像中提取局部特征点并进行匹配,用于图像识别、物体识别和图像检索等应用。
8.7 多尺度特征检测:
支持在不同尺度下检测特征点,适用于不同尺度的图像处理。
8.8 特征点绘制:
提供绘制函数,如cv::drawKeypoints、cv::drawMatches,用于在图像中可视化特征点和匹配结果。
8.9 特征匹配过滤:
提供基于距离比值的匹配过滤方法,如Lowe’s ratio test,用于去除错误匹配。
8.10 自适应特征检测:
支持自适应阈值和非最大抑制,提供更鲁棒的特征检测结果。
9 objdetect目标检测
9.1 对象检测:
1.提供基于Haar
级联分类器(Haar Cascade)的对象检测功能,如人脸检测、眼睛检测、车牌检测等。
2.提供基于LBP(局部二值模式)级联分类器的对象检测。
9.2 HOG特征和SVM检测:
1.使用Histogram of Oriented Gradients(HOG)特征结合支持向量机(SVM)进行行人检测。
2.提供预训练的行人检测模型,可以直接使用cv::HOGDescriptor类进行行人检测。
9.3 人脸检测和识别:
1.提供DNN(深度神经网络)模型用于人脸检测和人脸关键点检测,如cv::dnn::readNet加载预训练的DNN模型。
2.支持多种人脸检测算法,如MTCNN、SSD(Single Shot Multibox Detector)等。
9.4 QR码检测:
提供QR码检测和解码功能,可以检测图像中的QR码并提取其中的信息。
9.5 基于模板的对象检测:
使用模板匹配方法进行对象检测,如cv::matchTemplate函数。
9.6 条形码检测:
提供条形码检测功能,可以检测和解码一维条形码和二维条码。
9.7 自定义分类器训练:
提供工具和接口用于训练自定义的Haar级联分类器,用于检测特定对象。
9.8 对象跟踪:
提供对象检测和跟踪的集成方法,结合检测和跟踪算法实现实时对象跟踪。
9.9 人脸标志点检测:
提供人脸标志点检测功能,可以检测人脸的特征点,如眼睛、鼻子、嘴巴等。
10 dnn深度神经网络模块
10.1 深度学习模型加载和推理:
1.支持加载多种深度学习框架的模型,包括Caffe、TensorFlow、Torch、Darknet、ONNX等。
2.提供cv::dnn::readNet和cv::dnn::readNetFromONNX等函数加载模型。
3.使用cv::dnn::Net类进行模型推理,包括前向传播。
10.2 支持的层类型:
提供多种神经网络层类型,如卷积层、池化层、全连接层、激活层、归一化层、RNN/LSTM层等,支持构建和运行复杂的神经网络。
10.3 预处理和后处理:
1.提供图像预处理函数,如cv::dnn::blobFromImage,将图像转换为网络输入的格式。
2.提供常用的后处理操作,如非极大值抑制(NMS)和检测结果的解码。
10.4 模型优化:
支持对深度学习模型进行优化,如量化、剪枝和转换,以提高推理速度和减少内存占用。
10.5 兼容性和硬件加速:
1.支持CPU、GPU和OpenVINO等多种硬件加速平台。
2.提供对多种深度学习推理引擎的支持,如OpenCV自带的推理引擎、Intel’s OpenVINO、NVIDIA TensorRT等。
10.6 模型的转换工具:
提供工具和接口将其他框架的模型转换为OpenCV可用的格式,如ONNX模型转换工具。
10.7 端到端应用:
支持构建端到端的深度学习应用,如物体检测、图像分类、语义分割、人脸识别等。
10.8 自定义层支持:
允许用户定义和使用自定义的神经网络层,满足特殊应用需求。
10.9 示例和预训练模型:
提供大量的示例代码和预训练模型,帮助用户快速上手和开发深度学习应用。
10.10 模型部署:
支持将深度学习模型部署到各种平台,如嵌入式设备、服务器、移动设备等,实现实际应用。
11 ml机器学习
11.1 分类算法:
支持多种分类算法,如k近邻算法(k-Nearest Neighbors, KNN)、支持向量机(Support Vector Machine, SVM)、决策树(Decision Trees)、随机森林(Random Forests)、Boosting算法(如AdaBoost)等。
11.2 回归算法:
提供线性回归(Linear Regression)和逻辑回归(Logistic Regression)等回归算法。
11.3 聚类算法:
提供k均值聚类(k-Means Clustering)算法,用于对数据进行聚类分析。
11.4 贝叶斯分类:
支持朴素贝叶斯分类器(Naive Bayes Classifier),适用于分类任务。
11.5 神经网络:
提供简单的人工神经网络(Artificial Neural Network, ANN)实现,包括多层感知器(Multilayer Perceptron, MLP)。
11.6 决策树:
提供CART(Classification and Regression Tree)决策树算法,支持分类和回归任务。
11.7 随机森林:
支持随机森林算法(Random Forests),通过集成多个决策树进行分类和回归。
11.8 Boosting算法:
提供AdaBoost和Gradient Boosting算法,提升弱分类器的性能。
11.9 SVM(支持向量机):
支持线性和非线性支持向量机(SVM),可用于分类和回归。
11.10 核函数:
支持多种核函数(Kernel Functions),如线性核、RBF核、多项式核等,适用于支持向量机和其他核方法。
11.11 模型评估和交叉验证:
提供模型评估和交叉验证工具,如K折交叉验证(K-Fold Cross Validation)和混淆矩阵(Confusion Matrix),用于评估模型性能。
11.12 特征选择:
提供特征选择和降维工具,如主成分分析(PCA)和特征重要性评估。
11.13 数据预处理:
支持数据标准化、归一化和分割,便于训练和测试模型。
11.14 概率模型:
支持隐马尔可夫模型(Hidden Markov Model, HMM)和高斯混合模型(Gaussian Mixture Model, GMM),用于时间序列分析和聚类。
11.15 集成学习:
提供集成学习方法,通过集成多个弱学习器提高模型的泛化能力。
12 flann.多维空间中的聚类和搜索
12.1 快速最近邻搜索:
1.提供快速最近邻搜索(Fast Approximate Nearest Neighbors, FLANN)功能,用于高维数据的快速最近邻查找。
2.支持多种近似最近邻搜索算法,如k-d树(k-d Tree)、LSH(Locality-Sensitive Hashing)等。
12.2 索引构建和查询:
1.提供构建不同类型索引的功能,如线性索引、k-d树索引、k-means索引等,便于进行高效的最近邻搜索。
2.提供索引查询功能,通过flann::Index类进行快速的最近邻查询。
12.3 参数自动调优:
1.提供自动选择最优参数的功能,确保在不同数据集上获得最佳的搜索性能。
2.支持通过参数优化算法自动选择最佳的索引构建和搜索参数。
12.4 多维数据支持:
1.支持对多维数据进行处理,适用于图像特征匹配、图像检索、聚类分析等任务。
2.提供高效的数据预处理和转换功能,确保快速和准确的搜索结果。
12.5 可扩展性:
1.支持扩展和定制化,允许用户定义自定义距离度量和索引结构,以满足特定应用需求。
2.提供灵活的接口,便于集成到其他机器学习和计算机视觉应用中。
12.6 高效的内存管理:
1.提供高效的内存管理策略,确保在处理大规模数据集时的性能和资源使用优化。
2.支持内存映射文件,便于处理超大规模数据集。
12.7 并行处理:
支持多线程并行处理,提高搜索速度和效率,特别是在大数据集和高维数据场景下。
12.8 跨平台支持:
提供跨平台支持,适用于Windows、Linux、macOS等多种操作系统,确保广泛的应用场景。
13 photo计算摄影
13.1 去噪算法:
提供多种图像去噪算法,如非局部均值去噪(Non-Local Means Denoising)、快速非局部均值去噪(Fast Non-Local Means Denoising)等,用于减少图像中的噪声。
13.2 图像修复(Inpainting):
提供图像修复算法,通过cv::inpaint函数实现,用于修复图像中缺失或损坏的部分。支持基于纹理合成和基于区域增长的修复方法。
13.3 HDR(高动态范围成像):
支持HDR图像的生成和处理,包括多曝光图像融合、色调映射(Tone Mapping)等。提供cv::createMergeMertens、cv::createMergeDebevec和cv::createMergeRobertson等函数用于HDR图像生成。
13.4 色调映射(Tone Mapping):
提供多种色调映射算法,用于将HDR图像转换为可显示的低动态范围图像。支持线性色调映射、Drago色调映射、Reinhard色调映射和Mantiuk色调映射等。
13.5 无缝克隆(Seamless Cloning):
提供无缝克隆算法,通过cv::seamlessClone函数实现,用于在目标图像上无缝地合成源图像内容。支持混合克隆和普通克隆两种模式。
13.6 颜色转移(Color Transfer):
提供颜色转移算法,通过cv::colorChange函数实现,用于将源图像的颜色特征转移到目标图像上,实现颜色风格化效果。
13.7 曝光补偿(Exposure Compensation):
提供曝光补偿功能,通过cv::createAlignMTB、cv::CalibrateDebevec等函数实现,用于对多曝光图像进行对齐和曝光补偿。
13.8 去闪烁(DeFlicker):
提供视频去闪烁功能,通过多帧处理减少视频中的闪烁现象,提高视频质量。
13.9 边缘保持滤波:
提供边缘保持滤波算法,如双边滤波(Bilateral Filter)
、细节增强(Detail Enhancement)等,用于增强图像细节和保持边缘信息。
14 stitching.图像拼接
14.1 图像拼接:
提供图像拼接功能,通过cv::Stitcher类实现,将多张重叠图像拼接成一张全景图像。
支持全景图像和宽视角图像的生成。
14.2 特征检测与匹配:
提供特征检测和匹配算法,如SIFT、SURF、ORB等,用于检测图像中的特征点,并在图像之间进行特征匹配。
14.3 图像配准:
通过估计图像间的变换矩阵,实现图像配准。支持多种变换模型,如平移、仿射、透视变换等。
14.4 曝光补偿:
提供曝光补偿功能,通过调整不同图像的曝光度,使得拼接后的图像具有一致的亮度。
14.5 图像混合:
提供图像混合算法,使用多频段融合(Multi-band Blending)技术,实现无缝的图像拼接,减少拼接区域的缝隙和重影。
14.6 相机参数估计:
提供相机参数估计功能,支持从多张图像中估计相机的内部和外部参数,提高拼接的精度。
14.7 图像矫正:
提供图像矫正功能,通过去除透视失真和径向畸变,提高拼接图像的质量。
14.8 旋转和缩放:
支持旋转和缩放操作,以确保图像在拼接前对齐。
14.9 多通道图像支持:
支持RGB、灰度和多通道图像的拼接,适用于不同类型的图像数据。
14.10 GPU加速:
在支持的硬件上,提供GPU加速选项,以提高拼接处理的速度。
15 G-API.图形 API
15.1 图形处理管道(Graph API):
提供图形处理管道功能,通过定义和执行图像处理和计算机视觉任务的图形结构,优化数据流和计算效率。
15.2 延迟计算(Lazy Evaluation):
支持延迟计算技术,避免不必要的计算和数据传输,仅在需要时执行图像处理操作,提高整体性能。
15.3 跨平台和设备支持:
支持跨平台运行,包括CPU、GPU和其他硬件加速设备,实现高效的图像处理和计算。
15.4 自定义算子:
允许用户定义自定义算子(Custom Kernels),扩展G-API的功能,满足特定的图像处理需求。
15.5 优化的内存管理:
提供优化的内存管理策略,减少内存拷贝和数据冗余,提高处理速度和资源利用率。
15.6 易于集成:
设计为易于与现有的OpenCV代码和其他第三方库集成,提供一致的API接口和兼容性。
15.7 高层次抽象:
提供高层次的抽象,简化图像处理和计算机视觉任务的定义和实现,降低开发难度。
15.8 支持多种后端:
支持多种后端,如OpenCL、CUDA、OpenVX嵌入式等,实现跨平台和跨设备的优化加速。
15.9 流水线并行处理:
支持流水线并行处理,提高多任务处理的效率和吞吐量。
15.10 可视化调试:
提供可视化调试工具,帮助开发者理解和优化图像处理管道,提高开发效率。
16.额外模块:
alphamat. Alpha 抠图
aruco. Aruco 标记(功能已移至 objdetect 模块)
bgsegm. 改进的背景前景分割方法
bioinspired. 生物启发的视觉模型及相关工具
cannops. Ascend 加速的计算机视觉
ccalib. 3D 重建的自定义校准模式
cudaarithm. 矩阵运算
cudabgsegm. 背景分割
cudacodec. 视频编码/解码
cudafeatures2d. 特征检测和描述
cudafilters. 图像过滤
cudaimgproc. 图像处理
cudalegacy. 旧版支持
cudaobjdetect. 物体检测
cudaoptflow. 光流
cudastereo. 立体匹配
cudawarping. 图像变形
cudev. 设备层
cvv. 用于计算机视觉程序交互式可视调试的 GUI
datasets. 用于处理不同数据集的框架
dnn_objdetect. 用于物体检测的 DNN
dnn_superres. 用于超分辨率的 DNN
dpm. 变形部件模型
face. 面部分析
freetype. 使用 freetype/harfbuzz 绘制 UTF-8 字符串
fuzzy. 基于模糊数学的图像处理
hdf. 层次数据格式 I/O 例程
hfs. 高效图像分割的层次特征选择
img_hash. 不同图像哈希算法的实现
intensity_transform. 调整图像对比度的强度变换算法的实现
julia. OpenCV 的 Julia 绑定
line_descriptor. 从图像中提取线条的二进制描述符
mcc. Macbeth 色卡模块
optflow. 光流算法
ovis. OGRE 3D 可视化工具
phase_unwrapping. 相位展开 API
plot. 用于 Mat 数据的绘图功能
quality. 图像质量分析(IQA)API
rapid. 基于轮廓的 3D 物体跟踪
reg. 图像配准
rgbd. RGB-深度处理
saliency. 显著性 API
sfm. 从运动中重建结构
shape. 形状距离和匹配
signal. 信号处理
stereo. 立体匹配算法
structured_light. 结构光 API
superres. 超分辨率
surface_matching. 表面匹配
text. 场景文本检测和识别
tracking. 跟踪 API
videostab. 视频稳定
viz. 3D 可视化工具
wechat_qrcode. 用于检测和解析二维码的微信二维码检测器
xfeatures2d. 额外 2D 特征框架
ximgproc. 扩展图像处理
xobjdetect. 扩展物体检测
xphoto. 额外的照片处理算法