二维高斯核,Rank秩等于一的矩阵
之前,我在学习图像处理的时候,会经常用到Gaussian blur,也就是二维高斯低通滤波。当时用的都是Matlab中,现成的图像处理库。只需要输入sigma和kernel size这些参数就行了,完全不需要考虑高斯核中的每个点长啥样。虽然教科书里面也会有一些配图,例如:
直到后来,我学习高斯图像金字塔的时候发现,在别人的代码里面,他在生成二维高斯核的时候,并不是直接写出来的。而是,不论什么尺寸的2D高斯核,都是先生成一个对应长度的一维高斯核。然后再用这个一维的高斯核(列向量),乘以他自己的转置(行向量),生成我们期望的2D高斯核。就像这样:
当时我就觉得惊为天人,居然还有这种操作。再后来,我就把他这种做法,当作一种技巧来用,但一直都非常好奇,为什么可以这样?为什么别的二维滤波器不能这样合成?为什么只有二维高斯核可以这样合成?除了二维高斯核以外,