一、视频处理
1.1 OpenCV指定视频编解码器的常用选项
注意,帧速率和帧大小也必须指定,这些属性可以通过VideoCapture类的get()函数得到。但是摄像头的帧速率准确值不能通过get()方法返回,所以对于摄像头创建合适的VideoWriter类,要么对帧速率做出假设,要么用计时器来测量。
二、处理图像
2.1 傅里叶变换
- 幅度谱:图像的幅度谱时另一种图像,幅度谱图像呈现了原始图像再变化方面的一种表示:把一幅图像中最明亮的像素放到图像中央,然后逐渐变暗,在边缘上的像素最暗,这样可以发现图像中有多少亮的像素和暗的像素,以及它们分布的百分比。
2.2 滤波器
- 高通滤波器:用来检测图像的某个区域,然后根据像素和周围像素的亮度差值来提升该像素的亮度的滤波器,注意,滤波器中的所有值加起来为
0。 - 低通滤波器:在像素与周围像素的亮度差值小于一个特定值时,平滑该像素的亮度,主要用于去噪和模糊化。
- 核:一组权重的集合,它会应用在源图像的一个区域,并由此生成目标图像的一个像素。比如,大小尾7的核意味着每49(7*7)个源图像的像素会产生目标图像的一个像素。
- 锐化、边缘检测以及模糊等滤波器都使用了高度对称的核,但是有时不对称的核也会得到一些有趣的效果。
2.3 边缘&轮廓检测
Canny边缘检测算法非常复杂,有5个步骤:
用高斯滤波器对图像进行去噪、计算梯度、在边缘上使用非最大抑制(NMS)、在检测到的边缘上使用双阈值去除假阳性,最后还会分析所有的边缘及其之间的连接,以保留真正的边缘并消除不明显的边缘。
轮廓检测