OpenCV快速入门(C++版)
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 BFMatcher3.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 方法)