图像在进行卷积操作时,通常都是由滤波器“滑过”图像,典型的滤波器在每一次滑动时,滤波器都对它本身覆盖的图像区域的像素值进行加权求和,该SUM值就填充到输出图像对应的像素上,其简单示意图如下图所示。本文就该过程与信号与系统中的信号卷积中的表达式进行对照理解。
回顾信号中离散卷积和公式
该公式与实际的图像卷积过程等效( 暂且将图像想象成一维的数据),具体体现在以下几点:
x[k] 相当于原始图像,h[n−k] 相当于滑动中的滤波器,y[n] 相当于输出图像滤波器不断滑动,每滑过一个像素,就能产生一个对应的加权的SUM值,填充到输出图像对应的像素中,这种滑动的过程就体现在变量
n 上,每一次滑动,∑k=−∞+∞x[k]h[n−k] 就相当于对应的原始图像像素与滤波器进行加权求和,假定滤波器的大小为9,举例:
⋯y[11]=x[1]h[10]0+x[2]h[9]+x[3]h[8]+x[4]h[7]+⋯+x[10]h[1]Filter Size: 9+x[11]h[0]0+⋯y[12]=x[1]h[11]0+x[2]h[10]0+x[3]h[9]+⋯+x[10]h[2]+x[11]h[1]Filter Size: 9+x[12]h[0]0+⋯y[13]=x[1]h[12]0+x[2]h[11]0+x[3]h[10]0+x[4]h[9]+⋯+x[12]h[1]Filter Size: 9+x[13]h[0]0+⋯⋯ 从上述公式可以看出,数学意义上的加权包含了原始图像的所有像素,但实际上由于滤波器在许多位置上并无定义(0值),导致求和项中产生了大量的0项,仅仅在中间一段连续的项中具有有意义的值,这一段区域的大小正好是滤波器的大小。
从上述公式中主要三行滤波器区域中
x 的索引能够看出,y[11] 对应的滤波器从x[2] 开始,y[12] 对应的滤波器从x[3] 开始,y[13] 对应的滤波器从x[4] 开始,这也体现了滤波器的滑动。