How can I reduce periodic noises from my image? Please help

49 vues (au cours des 30 derniers jours)
Ayberk Ay
Ayberk Ay le 18 Fév 2020
Commenté : aseel malkawi le 26 Mai 2022
I've tried to reduce the periodic noises with frequency domain filtering.However, the result of the filter is not that good.Actually, even when I get fftshift of the image, I cannot see clearly noises (maybe there are four point that seems like noises, so I chose them in the code below).Please help me about this filtering.I don't have so much time.I am new at image processing btw.I thought that I can use Notch filter but I couldn't find any special function for it unlike median or average filters.
(The image is attached)
I = imread('woman-1_3.bmp');
I2=fft2(I);
imshow(log(1+abs(fftshift(I2))),[]);
m=ones(200,200);
m(84:1:92,85:1:93)=0;
m(109:1:117,85:1:93)=0;
m(84:1:92,109:1:117)=0;
m(109:1:117,109:1:117)=0;
imshow(m);
imshow(log(1+abs( fftshift(I2).*m)),[]);
imshow(log(1+abs(ifft2( fftshift(I2).*m))),[]);

Réponse acceptée

Akira Agata
Akira Agata le 19 Fév 2020
Looking at your image, periodic noise pattern appears around every 20~30 pixel. So I think the first step is to use FFT or DCT and suppress these frequency components.
The following is my initial try:
% Read the image
I = imread('woman-1_3.bmp');
% Apply DCT
Iw = dct2(I);
% Reduce peaky high-frequency components
idx = abs(Iw) > 50;
idx(1:19,:) = false;
idx(:,1:19) = false;
Iw(idx) = Iw(idx)/100;
% Convert to image
I2 = idct2(Iw);
I2 = mat2gray(I2);
% Show the result
figure
imshowpair(I,I2,'montage')
title('Before / After','FontSize',14)
  2 commentaires
Ayberk Ay
Ayberk Ay le 19 Fév 2020
Thank you so much! I wouldn't know that periodic noise pattern appears around every 20~30 pixel.
aseel malkawi
aseel malkawi le 26 Mai 2022
if the noise appears more frequently, how do i adjust the parameters?

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by