0.OpenCV框架
reference:
https://docs.opencv.org/4.1.2/
基本使用
1.图片和视频,读写(2,8)
2.OpenCV基本数据类型(3)
3.OpenCV大型数据类型及操作:图像,数组(4,5)
4.绘图和注释(6)
重要理论
1.SVD分解(7)
2.滤波和卷积(10)
- 阈值
- 平滑(中值、高斯、双边滤波)
- 导数,梯度,拉普拉斯变换
- 图像形态学:膨胀,腐蚀
- 卷积
3.图像变换(11)
- 拉伸、收缩、扭曲、旋转
- 映射
- 图像修复,去噪
- 直方图均衡化
4.图像分析(12)
- 离散傅里叶变化
- 积分图
- Canny边缘检测
- Hough变换(线,圆)
- 距离变换(有、无标记)
- 分割
5.直方图和模板(13)
- 直方图信息:物体的颜色分布、物体的边缘梯度模板、以概率的形式表达物体位置的估计
- 直方图归一化、二值化、直方图比较、
- 反向投影:计算像素和直方图模型中像素吻合度
- 模板匹配、方差匹配——》高度结构化的图片
5.1 应用
- 手势识别:匹配直方图模型
- 通过帧与帧之间边缘和颜色的统计量是否有巨大变化,判断视频中场景的变换
- 兴趣点邻域特征组成的直方图来辨识兴趣点,进行目标识别
- 提取视频中颜色、边缘直方图序列,可以判断视频是否拷贝自网络
常见应用
1.轮廓(14)
- 查找轮廓:cv::findContours()
- 绘制轮廓:cv::drawContours()
- 联通区域分析
- 多边形轮廓逼近:cv::approxPolyDP()——Douglas-Peucker算法
- 轮廓长度:cv::arcLength()
- 矩形包围框:cv::boundingRect()
- 最小矩形框:cv::minAreaRect()
- 最小包围圈minEnclosingCircle()、椭圆边框fitEllipse()、轮廓最佳拟合线fitLine()、凸包convexHull()
1.1 几何学测试
- 检测点是否落在多边形内:pointPolygonTest()
- 检测轮廓是否为凸:isContourConvex()
- 比较轮廓:轮廓矩,中心矩位移不变性、归一化的中心矩缩放不变性、Hu不变矩的旋转不变性、形状场景法(形状场景距离、Hausdorff距离)
2.背景提取(15)
3.关键点检测,过滤,跟踪(16)
4.跟踪算法(17)
- 光流
- Mean-shift和Camshift
5.相机模型与标定(18)
- 透镜畸变
- 矫正映射
6.投影与三维视觉(19)
人工智能
1.OpenCV 的机器学习算法StatModel
2.目标检测
- Latent SVM
- Bag of Words