如何使用时域中的过滤器来过滤图像?



我在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(:,:,:))));

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

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

最新更新