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

31 次查看(过去 30 天)
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))),[]);

采纳的回答

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

请先登录,再进行评论。

更多回答(0 个)

产品

Community Treasure Hunt

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

Start Hunting!

Translated by