我使用MATLAB对图像应用高斯低通滤波器以获得不同的标准偏差,并记录每种方法所需的时间。我看到在频域中实现滤波器效率更高(更快)。有没有人对此有解释?
答案 0 :(得分:5)
假设您使用imfilter
,此函数会执行原始图像与内核(高斯滤镜图像)的卷积。
为了进入频域并返回,使用快速傅里叶变换(FFT)算法,并且仅在频域中执行图像乘法。
因此,imfilter将采用N.M操作,分别是N和M图像和内核中的像素数。每个FFT或其逆具有复杂度N log_2 N,并且乘法具有复数N,对于大约N log_2 N的总复杂度,其比卷积快得多。