C++版 OpenCV 目录细查:
参考:https://www.runoob.com/opencv/cpp-opencv-basic.html
C++版 OpenCV 基本模块:
参考:https://www.runoob.com/opencv/cpp-opencv-basic-modules.html
注意:
我们唯一要做的,就是要记住:它大概有哪些内容就行。
比如腐蚀、滤波、直方图是干嘛的,至于滤波具体有哪几种?用到了,再去查!
不要去试图把所有的内容都记住或者写到笔记本,相信我,不出三天你就全忘了。
你如果实在要背,请你先把这个目录先背下来吧!
1. 图像的基本操作:
参考:https://www.runoob.com/opencv/cpp-opencv-basic.html
1.1 读取、显示和保存图像
1.2 图像的基本属性(尺寸、通道数、像素值)
1.3 图像的创建与初始化
1.4 图像的像素操作(遍历、修改)
1.5 图像的几何变换
1.5.1 缩放、旋转、平移、翻转
1.5.2 仿射变换与透视变换【用于修正和矫正图像的几何形态】
1.6 图像的颜色空间转换
1.6.1 RGB、灰度、HSV等颜色空间
1.6.2 颜色空间转换
1.6.3 通道分离与合并
2. 图像处理:
参考:https://www.runoob.com/opencv/cpp-opencv-image-operator.html
2.1 图像滤波【用于去除图像中的噪声或增强图像的某些特征】
2.1.1 平均滤波
2.1.2 中值滤波
2.1.3 高斯滤波
2.1.4 自定义滤波
2.2 图像边缘检测【用于识别图像中物体的边界】
2.2.1 Sobel算子
2.2.2 Canny边缘检测
2.3 图像形态学操作【用于图像的前景和背景分离、噪声去除等任务】
2.3.1 腐蚀
2.3.2 膨胀
2.3.3 开运算
2.3.4 闭运算
2.3.5 形态学梯度
2.4 图像阈值化【用于图像分割】
2.4.1 二值化
2.4.2 自适应阈值化
2.4.3 Otsu 阈值化
2.5 图像直方图【先分析图像的亮度/对比度/颜色特征,并为后续的图像处理提供量化依据】
2.5.1 直方图计算
2.5.2 直方图均衡化
2.5.3 直方图对比
3. 特征检测:
参考:https://www.runoob.com/opencv/cpp-opencv-feature-detection.html
3.1 角点检测【用于检测图像中的亮度变化剧烈的点】
3.1.1 Harris 角点检测
3.1.2 Shi-Tomasi 角点检测
3.2 特征点检测【用于检测图像中的特征点】
3.2.1 SIFT 算法
3.2.2 SURF 算法
3.2.3 ORB 算法
3.3 特征匹配【将两幅图像中的特征点进行匹配的过程】
3.3.1 BFMatcher
3.3.2 FLANN匹配器
3.3.3 特征点匹配与筛选
3.3.3.1 基于距离的筛选
3.3.3.2 基于几何约束的筛选
4. 高级图像处理:
参考:https://www.runoob.com/opencv/cpp-opencv-advanced-image-processing.html
4.1 图像分割
4.1.1 基于阈值的分割
4.1.1.1 全局阈值【通过设定一个全局阈值,将图像分为前景和背景】
4.1.1.2 自适应阈值
4.1.2 基于区域的分割(分水岭算法)【将图像视为地形图,通过模拟水流的扩散来分割图像】
4.1.3 基于边缘的分割
4.1.3.1 Canny 边缘检测
4.1.3.2 Sobel 边缘检测
4.2 轮廓检测
4.2.1 查找轮廓
4.2.2 轮廓特征
4.2.2.1 面积
4.2.2.2 周长
4.2.2.3 边界框
4.2.3 轮廓绘制
4.3 模板匹配【用于在图像中查找特定的模板图像】
4.3.1 单模板匹配
4.3.2 多模板匹配【同时查找多个模板】
5. 视频处理:
参考:https://www.runoob.com/opencv/cpp-opencv-video.html
5.1 视频的读取与显示
5.1.1 读取视频文件(VideoCapture)
5.1.2 显示视频帧
5.1.3 保存视频文件(VideoWriter)
5.2 视频帧处理【在每一帧上应用一些实时处理算法】
5.2.1 逐帧处理视频
5.2.2 视频帧的实时处理
5.3 摄像头实时处理
5.3.1 打开摄像头
5.3.2 实时视频流的处理
5.4 高级视频处理:
5.4.1 视频背景减除
5.4.2 光流计算【用于计算视频帧中物体的运动】
5.4.2.1 稀疏光流(Lucas-Kanade 方法)
5.4.2.2 稠密光流(Farneback 方法)