第二周-视觉处理算法基础-芥末酱-201906
介绍
画图解释图像卷积滤波的基本原理,并进一步简述常见的图像平滑滤波算法。
简述边缘检测的基本原理,以及Sobel、LoG和Canny算子的原理差异。
简述图像直方图的基本概念,及使用大津算法进行图像分割的基本原理。
简述Harris算子对角点的定义,进行角点检测的基本原理,并说明引入角点响应函数的意义。
简述Hough变换的基本原理(包括参数空间变换及参数空间划分网格统计)。
简述SIFT原理(重点是尺度空间和方向直方图原理)及ORB算子原理(重点是FAST和BRIEF)。
1. 画图解释图像卷积滤波的基本原理,并进一步简述常见的图像平滑滤波算法。
先来看一下滤波和卷积的区别:
滤波
卷积
滤波操作就是图像对应像素与掩膜(mask)的乘积之和。 比如有一张图片和一个掩膜
卷积操作在做乘积之前,需要先将卷积核翻转180度,之后再做乘积。
滤波步骤: 对原始图像的边缘进行某种方式的填充(一般为0填充)。 将掩膜划过整幅图像,计算图像中每个像素点的滤波结果。
卷积步骤: 180度翻转卷积核。 不做边界填充,直接对图像进行相应位置乘积和。
从以上步骤可以看出,如果卷积核不是中心对称的,那么卷积和滤波操作将会得到完全不一样的结果。另外,卷积操作会改变图像大小!
由于卷积操作会导致图像变小(损失图像边缘),所以为了保证卷积后图像大小与原图一致,经常的一种做法是人为的在卷积操作之前对图像边缘进行填充。
滤波器(过滤器:filter)的权值是根据你要检测的特征来决定的,在深度学习中,也即是要经过训练得到。检测的特征不同,权值就不一样。
如上单层的图像一般表示的是灰白图,既是没有颜色的,有颜色的RGB图像,会包含三个相同大小的图层,这时对应的滤波器也要变成三层,滤波器的层数(通道数)必须时刻与图像层数保持一致。。。
5x5的图像经过3x3的滤波器得到一个3x3的结果,6x6x3d的图像经过3x3x3d的滤波器得到一个4x4x1d的结果,从单层的例子我们大概已经知道了是怎么计算的了,那么接下来转换成公式来表示一下。
无论是单层还是多层,一个滤波器只能检测一种特征,要检测多个特征,我们需要多个滤波器。
简述常见的图像平滑滤波算法。
(1)均值滤波(mean filter) (归一化盒子滤波):
//Size(x, y) 卷积核的大小,当x>y时着重在x轴方向模糊,当x
blur(InputArray src, OutputArray dst, Size ksize, Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT );
blur(src, dst, Size(3, 3), Point(-1, -1)); //均值滤波,窗口大小,中心点,borderType默认为4不用管
均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个滤波模板(即卷积核),模板的值都为1,该模板大小可覆盖目标像素周围的邻近像素(以目标像素为中心的周围8个像素,即去掉目标像素本身)和中心像素,再用模板中的值分别与其覆盖下原图像的像素值对应相乘,并取这些乘积之和的平均值来代替原来目标像素值,就这样模板在原图上不断的滑动计算直至替代了每个像素(图像边界计算不了)。因为模板权值都为1,也可以用公式(2-1)更简单的表示。
式中g(x,y)为均值滤波后的图像,f(x,y)为原始图像,M为模板中包含当前像素在内的像素总个数,N为模板邻域像素点集合。
作用:平滑图像, 可以把锐度降低;模糊图像,降低噪声;算法简单,计算速度快,效果较差。
(2)高斯滤波(Gauss filter):
GaussianBlur(src, dst2, Size(11, 11), 11, 11); //高斯模糊,高斯窗口大小x y坐标,σx σy正态分布情况
高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。
操作:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板中像素的加权平均值去替代模板中心像素点的值。
作用:相对于均值滤波它的平滑效果更柔和,而且边缘保留的也更好。
如下图为一个标准差为1.0的整数值高斯核,高斯滤波后图像被平滑的程度取决于标准差。它的输出是领域像素的加权平均,同时离中心越近的像素权重越高。
高斯分布(正态分布)曲线:钟摆型,若随机变量X服从一个数学期望为μ、方差为σ^2的正态分布,记为N(μ,σ^2)。其概率密度函数为正态分布的期望值μ决定了其位置,其标准差 σ 决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布。数字图像是离散的,总概率之和为1,中心化对称,注意要中心化 。
四个不同参数集的概率密度函数(红色线代表标准正态分布)
(3)中值滤波 :
medianBlur(src2, dst3, 3); //中值滤波,窗口大小3*3
中值滤波法是一种非线性平滑技术,它将每一像素点的像素值设置为该点某邻域窗口内的所有像素点像素值的中值。统计排序滤波器,中值对椒盐噪声(有最大小值特性)有很好的抑制作用,效果是图像中瑕疵更光滑。(没用卷积)
操作:窗口内的像素从小到大排序取中值赋给中间像素。
椒盐噪声 也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机