opencv3源码目录modules和samples分析

opencv3源码目录modules和samples分析

  • 说明
  • 源码目录分析
    • modules目录
    • samples目录

说明

上一篇文章介绍了opencv3的源码编译和Qt的配置https://blog.csdn.net/haohaohaihuai/article/details/106144386
以及第一个opencv程序的示例。为了更好的理解opencv结构,先从源码目录开始就很有必要。当然了这里只做一些简单的分析介绍。

源码目录分析

modules目录

opencv3源码目录modules和samples分析_第1张图片
为了更清晰的展示,下面用一个表格进行展示

目录 说明
cudaarithm cuda加速的矩阵运算模块
cudabgsegm cuda加速的背景分割模块
cudacodec cuda加速的视频编码与解码
cudafeatures2d cuda加速的特征检测与描述模块
cudafilters cuda加速的图像滤波
cudaimgproc cuda加速的图像处理算法,包含直方图计算、霍夫变换等
cudalegacy cuda加速的一些废弃接口,保留用来向下兼容
cudaobjdetect cuda加速的目标检测模块
cudaoptflow cuda加速的光流检测算法
cudastereo cuda加速的立体视觉匹配算法
cudawarping cuda加速的快速图像变换,包括透视变换、旋转、改变尺寸等
cudev Device layer设备层
calib3d 相机标定和三维重建模块
core 核心功能模块,定义了基本的数据结构,包括最重要的 Mat 类、XML 读写、OpenGL三维渲染等
dnn 深度学习模块
features2d 2D 特征值检测的框架。包含各种特征值检测器及描述
flann 高维的近似近邻快速搜索算法库
highgui 高级的图形交互界面,包括控制显示窗口, 鼠标交互,图像视频的显示
imgcodecs 图像文件编解码、读写操作
imgproc 图像处理,包括图像滤波、集合图像变换、直方图计算、形状描述等
ml 机器学习模块
objdetect 目标检测模块,包括 Haar 分类器、SVM 检测器及文字检测
photo 计算摄影学,包括图像修补、去噪、HDR 成像、非真实感渲染等
shape 形状匹配算法模块,用于描述形状、比较形状
stitching 图像拼接
superres 超分辨率技术相关模块
ts opencv测试相关
video 视频分析模块,包括背景提取、光流跟踪、卡尔曼滤波等
videoio 视频编解码、读写操作
videostab 视频稳定相关模块
viz 三维可视化模块

samples目录

opencv3源码目录modules和samples分析_第2张图片

例程 说明
samples/cpp/3calibration.cpp 标定三台水平放置的相机示例
samples/cpp/fld_lines.cpp 检测直线示例
samples/cpp/camshiftdemo.cpp 使用均值漂移跟踪算法的示例
samples/cpp/connected_components.cpp 查找并绘制图像中的连通区域示例
samples/cpp/contours2.cpp 轮廓的查找和绘制示例
samples/cpp/convexhull.cpp 凸面区域查找功能的示例
samples/cpp/cout_mat.cpp cout格式化输出cv :: Mat功能的示例
samples/cpp/create_mask.cpp 用鼠标事件以及如何制作和使用蒙版图像(黑白)示例
samples/cpp/demhist.cpp 创建图像直方图的示例
samples/cpp/distrans.cpp 边缘图形的距离变换示例
samples/cpp/edge.cpp Canny边缘检测器的用法示例
samples/cpp/facedetect.cpp 基于Cascade分类器人脸检测
samples/cpp/falsecolor.cpp 使用applyColorMap函数的示例
samples/cpp/ffilldemo.cpp 使用FloodFill像素填充示例
samples/cpp/filestorage.cpp 使用FileStorage操作文件yml,xml等示例
samples/cpp/fitellipse.cpp 轮廓点匹配到椭圆示例
samples/cpp/grabcut.cpp GrabCut分割算法示例
samples/cpp/image_alignment.cpp 图像对齐ECC算法的示例
samples/cpp/intersectExample.cpp intersectConvexConvex示例
samples/cpp/kalman.cpp 卡尔曼滤波进行二维跟踪示例
samples/cpp/kmeans.cpp K均值聚类算法示例
samples/cpp/laplace.cpp 拉普拉斯变换进行边缘检测的示例
samples/cpp/lkdemo.cpp Lucas-Kanade光流算法的示例
samples/cpp/minarea.cpp 寻找最小包围圈示例
samples/cpp/pca.cpp 使用PCA进行降维示例
samples/cpp/peopledetect.cpp 基于 cascade 或 hog 进行物体(人)检测示例
samples/cpp/polar_transforms.cpp cv :: linearPolar和cv :: logPolar操作的示例
samples/cpp/segment_objects.cpp 实时地在视频或相机画面中检测前景物体示例
samples/cpp/shape_example.cpp 形状检测算法的示例
samples/cpp/squares.cpp 检测图像中的方块形状示例
samples/cpp/stitching.cpp 图像拼接的基本示例
samples/cpp/stitching_detailed.cpp 有关图像拼接的详细示例
samples/cpp/train_HOG.cpp 训练 HOG 分类器
samples/cpp/videowriter_basic.cpp VideoCapture和VideoWriter类的示例
samples/cpp/warpPerspective_demo.cpp cv :: findHomography和cv :: warpPerspective图像变形示例
samples/cpp/watershed.cpp 分水岭算法的示例

源码目录分析大致这样,还有一部分不太理解意思,没做分析。在此做个记录同时也希望能帮到有需要的同学。

作者:费码程序猿
欢迎技术交流:QQ:255895056
转载请注明出处,如有不当欢迎指正

你可能感兴趣的:(opencv笔记,opencv,计算机视觉)