I just tried the Fourier denoising method with a hard threshold and my code is as follow:
F = imnoise(phantom(128),'gaussian');
B = fft(F);
s = 0.3;
for i = 1:128
for j = 1:128
if abs(B(i,j))<s
B(i,j)=0;
end
end
end
C=ifft(B);
subplot(121)
imshow(F,[])
subplot(122)
imshow(C,[])
Left is the phantom after adding noise and the right is the denoised image from my code.
The Fourier denoising hard threshold method just uses threshold value to keep high frequency coefficients and the coefficients below the threshold to be 0.
In my code, I just added gaussian noise with default mean 0 and variance 0.01 to my phantom image and then I set the threshold to be 3 times of the standard deviation of the noise, which is 0.3 (this is some good practical threshold I looked at from literature). But why the result is not good? It seems it is still very noisy. Even I change my threshold the result is not good. Why? And I want to my denoised image as close to the original phantom.
Thanks in advance!
fft2
(2-D) instead offft
(1-D). $\endgroup$ – Matt L. Jun 9 '15 at 10:37