我有移动平均掩码为
mask = [1 1 1; 1 1 1; 1 1 1];
然后我计算卷积3次
imageF = conv2(conv2(conv2(originalImage, mask), mask), mask);
我想知道如何获得一个等效的掩码来仅用一个卷积计算滤波器
imageF = conv2(originalImage, equivMask);
我有移动平均掩码为
mask = [1 1 1; 1 1 1; 1 1 1];
然后我计算卷积3次
imageF = conv2(conv2(conv2(originalImage, mask), mask), mask);
我想知道如何获得一个等效的掩码来仅用一个卷积计算滤波器
imageF = conv2(originalImage, equivMask);
线性时不变系统中的卷积是关联的。因此,要获得等效掩码,您只需将内核与自身卷积两次。然后,这将为您提供一个 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 高斯可能会更好。