如何使用时域中的过滤器对图像进行过滤?

时间:2020-09-17 13:29:28

标签: matlab wavelet wavelet-transform

我在Matlab的频域中得到了一些小波。然后,通过傅立叶变换ifft2将其传输到时域中的小波。小波在时域和频域中的大小与图像相同。而且它们都是矩阵。

问题是:

如何使用时域中的滤波器对图像进行滤波,或将时域中的滤波器转换为可以使图像倍增的物体? 通常,时域中的过滤器通过卷积对图像进行过滤。但是我从频域中通过小波传递得到的滤波器的大小与图像相同。看来它无法卷积。

X = imread('barbara.jpg');
shearletSystem = SLgetShearletSystem2D(0,size(X,1),size(X,2),scales);  
%the size of {shearlets} and {shearlets_timedomain} are [size(X,1),size(X,2),nshear],nshear is the number of the shearlets
%shearlets is the filter in the frequency domain,shearlets_timedomain is the filter in the time domain
shearlets_timedomain=fftshift(ifft2(ifftshift(shearletSystem.shearlets(:,:,:))));

1 个答案:

答案 0 :(得分:0)

FWT 完全可以在频域中完成,参见 this paper 中的解释。如果我理解正确,您的问题不是为什么卷积信号与原始信号具有相同的大小(请参阅@ChrisLuengo 的回复),而是如何在频域中进行下采样(选择偶数或奇数位置)。

正如@Adriaan 所说,时域中的卷积是频域中的逐点乘法,反之亦然。为了对长度为 x [x(1) ... x(n) in MatLab] 的信号 n 进行二次采样,及其傅立叶变换 X,在时域对应于频域取x(1:2:n)——只是为了完整性,时域取X(1:(n/2))对应于频域取x(2:2:n)

相关问题