我在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(:,:,:))));
发布于 2021-01-12 12:52:44
FWT完全可以在频域中完成,请参阅this paper中的说明。如果我理解正确的话,您的问题不是为什么卷积信号与原始信号具有相同的大小(参见@ChrisLuengo的回复),而是如何在频域中进行下采样(选择偶数或奇数位置)。
正如@Adriaan所说,时域中的卷积是频域中的逐点乘法,反之亦然。为了对长度为n
x(1)的信号x
进行二次采样...x(n)在MatLab中,以及它的傅立叶变换X
,在时域取x(1:2:n)
对应于在频域取X(1:(n/2))
-,为了完整起见,取时域的x(2:2:n)
对应于取频域的X((n/2+1):n)
。
https://stackoverflow.com/questions/63939140
复制相似问题