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

31 Ansichten (letzte 30 Tage)
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))),[]);

Akzeptierte Antwort

Akira Agata
Akira Agata am 19 Feb. 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 Kommentare
Ayberk Ay
Ayberk Ay am 19 Feb. 2020
Thank you so much! I wouldn't know that periodic noise pattern appears around every 20~30 pixel.
aseel malkawi
aseel malkawi am 26 Mai 2022
if the noise appears more frequently, how do i adjust the parameters?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by