汉明滤波器以减少图像中的振铃效应

Hamming filter to reduce ringing artifact in image

我有一个低分辨率图像 (sLR),它是通过在行方向的频域 (k-space) 中选择参考高分辨率图像 (sHR) 的中心部分生成的.当我在频域中对这个低分辨率图像进行零填充时,我在空间域中得到了预期的振铃伪影。我尝试通过使用 Hamming window 过滤图像来移除此伪像。请在下面查看我的代码。我对将 fft 和 ifft 应用于图像以及过滤过程有疑问,如果有人可以检查我的代码并确认它是正确的,我将不胜感激。

% sHR: HR reference image
n = size(sHR,1);
kspHR = fftshift(fft(sHR,n,1),1)/n; % HR image in k-space

% Generating LR image (LR in row-direction)
kspLR = kspHR((n/2)-(n/4)+1:(n/2)+(n/4),:); 
sLR = real(ifft(ifftshift(kspLR,1),n,1)))*n; 

% Zero-padding
a = floor(size(kspLR,1)/2);
kspZP = padarray(kspLR, a ,'both');
sZP = real(ifft(ifftshift(kspZP,1),n,1)))*n;% image with Ringing artifact

% Apply Hamming filter to Zero-padded kspace image (kspZP)
[r,c]=size(abs(kspZP));
w = hamming(r);
W = repmat(w,[1,c]);
kspHM = W.*kspZP
sHM = real(ifft(ifftshift(kspHM,1),n,1)))*n; % Filtered image in spatial domain

我的第二个问题是,当我使用 iffft 时,输出图像通常具有负强度。对于空间域中的进一步处理,如果我以图像的最小强度为 0 的方式对图像强度进行归一化,可以吗?还是我应该使用图像的绝对值?

  1. 这不是汉明 window 的标准用法,但作为一种高斯形状可能会有所帮助。尝试应用 window(或其他一些频率响应)而不是 来剪掉频谱的中心部分,或将其放入中心部分。否则,尖锐的截止音将保留,振铃也将保留。

  2. 我建议使用 max(0,... 将这些负值削减为零,因为它们代表您不想要的响铃。也许还会将意外大的值剪辑为 1.