20

是什么让卷积核可分离?为了进行两个 1D 卷积而不是 2D 卷积,我如何能够分辨出这些可分离的部分是什么>

谢谢

4

2 回答 2

19

如果 2D 滤波器内核的 arank为 1,则它是可分离的。您可以在例如 Matlab 或 Octave 中对此进行测试:

octave-3.2.3:1>     sobel = [-1 0 1 ; -2 0 2 ; -1 0 1];
octave-3.2.3:2>     rank(sobel)
ans =  1
octave-3.2.3:3> 

另请参阅:http: //blogs.mathworks.com/steve/2006/11/28/separable-convolution-part-2/ - 这包括使用SVD(奇异值分解)从可分离的 2D 内核中提取两个 1D 内核。

另请参阅DSP.stackexchange.com上的这个问题:Fast/efficient way to decompose separable integer 2D filter coefficients

于 2011-05-04T16:42:31.727 回答
4

您还可以将矩阵拆分为对称和倾斜部分并分离每个部分,这对于较大的 2d 卷积非常有效。

于 2011-05-13T21:47:34.583 回答