卷积
-
像素运算符(Pixel operator)
像素运算符:根据输入像素值计算每个像素位置的输出值。
g: 输出图像 f: 输入图像
-
伽玛校正(Gamma correction)
伽玛校正:一种非线性操作,用于对视频或数字图像中的亮度进行编码和解码。
-
局部运算符(Local operator)
局部运算符:根据输入像素周围的像素邻域,计算每个像素位置的输出值。
例子:锐化滤波器(sharpening filter)
-
线性滤波(Linear filtering)
线性滤波:其中输出像素的值是输入像素的邻域中的像素值的线性组合。
-
互相关卷积(Cross-correlation convolution)
互相关:在图像上叠加滤波器
-
卷积运算符(Convolution operator)
卷积:水平和垂直翻转滤波器
-
动图演示
滤波器(Filters)
-
均值(Average)滤波器
均值滤波器:采用均值卷积核,其所有权重都相等,即将一个区域的像素计算平均值,然后将窗口中计算的平均值设置为锚点上的像素值。
均值卷积核示例
-
Gaussian 滤波器
Gaussian 滤波器:一种线性低通滤波器,能够有效的抑制噪声,平滑图像。在高斯卷积核中,离中心像素越远的像素拥有较低的权重,而离中心像素越近的像素拥有较高的权重。这意味着高斯卷积核在卷积操作中更注重中心像素的影响,而较远的像素影响较小。
-
Sobel 滤波器
Sobel 滤波器的主要思想是在边缘位置,图像像素的灰度值变化会很剧烈。在水平边缘上,像素值在垂直方向上的梯度较大,在垂直边缘上,像素值在水平方向上的梯度较大。
当卷积核的设计是垂直时,会加强图像的纵向特征
当卷积核的设计是水平时,会加强图像的横向特征
滤波器运算
-
线性滤波器的特性
-
交换(Commutative)
- 从理论上讲,卷积核(h)和图像(f)的顺序不影响最终结果。
- 但在实际实现中,许多情况下都关注卷积核和图像的顺序。
-
结合(Associative)
- 这意味着在连续应用多个卷积核时,可以根据情况选择一种更高效的顺序,以提高运算效率。
-
分配(Distributive over addition)
- 这个性质允许我们在处理时将卷积分解为两部分,分别处理后再相加,以简化计算。
-
数乘可交换性(Multiplication cancels out)
- 这表示我们可以在卷积运算之前或之后对卷积核进行缩放(数乘),结果是相同的。
-
优化图像处理效率
-
多个滤波器
如果需要对图像应用多个滤波器,可以将这些滤波器合并成一个单一的滤波器,然后只对图像进行一次滤波操作,这样可以提高计算效率。通过将滤波器组合起来,可以减少多次卷积的计算量,从而在处理图像时节省时间和计算资源。
-
可分离滤波器
当我们需要应用一个二维滤波器时,通过将其分解成两个一维滤波器的乘积,可以大幅提高滤波的计算效率。
边界处理
在图像处理和卷积操作中,边缘处理是指在对图像进行滤波或卷积操作时,对图像边界上的像素进行处理的方式。因为卷积核通常比图像小,当卷积核滑动到图像边界时,无法完全覆盖卷积核的所有元素,这样会导致边界处的像素无法进行完整的卷积运算。
-
填充恒定值(Pad with constant value)
在图像边界外部用指定的常数值填充,以扩展图像尺寸,使卷积核可以完全覆盖图像。常用的常数值包括0或者黑色像素值。
-
图像环绕(Wrap image)
将图像在边界处进行环绕处理。当卷积核滑动到图像边缘时,如果超出了图像边界,就从对应的另一侧开始,形成环绕处理。这样处理后,可以实现周期性的特性,适用于周期性图像,例如纹理等。
-
边界值截断 / 复制(Clamp / replicate the border value)
用图像边界上最靠近边缘的像素值来填充卷积核无法覆盖的区域。这样处理后,输出图像边缘会保持与输入图像边缘相似的值,适用于平滑处理。
-
图像反射(Reflect image)
通过在图像边界处进行镜像复制,使用复制后的像素来填充卷积核无法覆盖的区域。这样处理后,可以在输出图像的边缘处保持一定程度的平滑过渡,适用于边缘检测和特征提取等任务。