什么使卷积内核可分离?我怎样才能分辨出那些可分离的部分是为了进行两次1D卷积而不是2D卷积>
由于
答案 0 :(得分:18)
如果2D过滤器内核的rank
为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
答案 1 :(得分:4)
你也可以将矩阵分成对称和偏斜的部分并将每个部分分开,这对于更大的2d卷积是有效的。