上面通过代码构造了高斯算子,并且使用二维的卷积运算来平滑图像,也达到了目标,不过还有一个问题,就是当你处理比较大的图片,或者比较大的高斯矩阵时,就会发现计算的时间很长。这时候我们就要考虑有没有高效快速的算法了,再回过头来审视一下二维高斯函数:
可以看到最后的等式,再考虑指数的运算法则:
根据(1)指数运算公式,反向使用它,就可以变换为两个指数相乘,这样就有意义了,表明高斯算子是可以分离的,并且是可以先作一维的水平的卷积运算,再作一维的垂直的卷积运算,这样的结果是一样的。
上面通过代码构造了高斯算子,并且使用二维的卷积运算来平滑图像,也达到了目标,不过还有一个问题,就是当你处理比较大的图片,或者比较大的高斯矩阵时,就会发现计算的时间很长。这时候我们就要考虑有没有高效快速的算法了,再回过头来审视一下二维高斯函数:
可以看到最后的等式,再考虑指数的运算法则:
根据(1)指数运算公式,反向使用它,就可以变换为两个指数相乘,这样就有意义了,表明高斯算子是可以分离的,并且是可以先作一维的水平的卷积运算,再作一维的垂直的卷积运算,这样的结果是一样的。