Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 频域与空域滤波_Matlab_Filtering - Fatal编程技术网

Matlab 频域与空域滤波

Matlab 频域与空域滤波,matlab,filtering,Matlab,Filtering,我使用MATLAB对不同标准偏差的图像应用高斯低通滤波器,并记录每种方法所用的时间。我发现在频域中实现滤波器效率更高(更快)。有人对此有解释吗?假设您使用imfilter,此函数将原始图像与内核(高斯滤波器图像)进行卷积 对于进入频域和返回,使用快速傅里叶变换(FFT)算法,并且仅在频域中执行图像乘法 因此,imfilter将执行大约N.M个操作,即图像和内核中的像素数分别为N和M 每个FFT或其逆运算的复杂度为N log_2 N,乘法的复杂度为N log_2 N,总复杂度约为N log_2 N

我使用MATLAB对不同标准偏差的图像应用高斯低通滤波器,并记录每种方法所用的时间。我发现在频域中实现滤波器效率更高(更快)。有人对此有解释吗?

假设您使用
imfilter
,此函数将原始图像与内核(高斯滤波器图像)进行卷积

对于进入频域和返回,使用快速傅里叶变换(FFT)算法,并且仅在频域中执行图像乘法

因此,imfilter将执行大约N.M个操作,即图像和内核中的像素数分别为N和M


每个FFT或其逆运算的复杂度为N log_2 N,乘法的复杂度为N log_2 N,总复杂度约为N log_2 N,这比卷积快得多。

非常感谢,我还有一个问题:只有在频域中,你才能使掩模与图像大小相同,但在空域中却没有,您知道遮罩在空间域中的大小吗?遮罩的大小取决于您希望实际过滤器的行为与您希望设计的过滤器的接近程度。例如,如果您想要一个理想的低通滤波器,那么一个好的近似值将需要一个大的遮罩。平滑滤波器(如高斯滤波器)需要较小的遮罩才能获得合理的近似值。但这是设计滤波器时的全部问题:更大的遮罩意味着更好的近似,但更多的操作。