移动平均线的等效 2D 掩模

信息处理 图像处理 低通滤波器 移动平均线
2022-02-12 23:18:29

我有移动平均掩码为

   mask = [1 1 1; 1 1 1; 1 1 1];

然后我计算卷积3次

   imageF = conv2(conv2(conv2(originalImage, mask), mask), mask);

我想知道如何获得一个等效的掩码来仅用一个卷积计算滤波器

   imageF = conv2(originalImage, equivMask);
1个回答

线性时不变系统中的卷积是关联的。因此,要获得等效掩码,您只需将内核与自身卷积两次。然后,这将为您提供一个 7x7 内核:

octave:1> a = [ 1 1 1 ; 1 1 1 ; 1 1 1 ]
a =

   1   1   1
   1   1   1
   1   1   1

octave:2> conv2(a,conv2(a,a))
ans =

    1    3    6    7    6    3    1
    3    9   18   21   18    9    3
    6   18   36   42   36   18    6
    7   21   42   49   42   21    7
    6   18   36   42   36   18    6
    3    9   18   21   18    9    3
    1    3    6    7    6    3    1

octave:3> 

请注意,原始掩码未归一化 - 它在 DC 处的增益为 9 - 因此通过三个卷积,您可以获得 9^3 的总体增益。

取决于您要实现的目标,尽管使用 7x7 高斯可能会更好。