我在修復圖像中的回聲。 圖片爲256X256像素。 我使用了逆濾波。Matlab修復圖像中的回波
這是代碼:
img=readImage('house');
lambda=0.001;
delta=zeros(256);
delta(1,1)=1/2;
delta(1,20)=1/2; % delta is The echo function used on real image
% I checked the axes and it is echoed 20 pixels to the right
G=fft2(img); % Fourier Transform of echoed image
H=fft2(delta); % Fourier transform of delta
Hs=conj(H); % H*
filter=Hs/(Hs*H+lambda)
cleanim=filter*G;
cleanim=ifft2(cleanim);
imshow(cleanim,[]);
過濾器矩陣是NaN矩陣,爲什麼呢?我做錯了什麼?
我不太確定過濾。但是:filter = Hs /(Hs * H + lambda)'對我來說似乎有問題,導致除法有矩陣除法和奇異矩陣。要麼你需要使用逐點''/'或者使用'diag(256)* lambda'(我猜這是第一個)。 – bdecaf
首先,如果通過「回聲」表示重複模式,那麼逆濾波不是您的解決方案,因爲您現在可能不是重複的頻率。相反,典型的傅立葉域濾波非常適用於這種情況!對噪聲圖像進行FFT處理,並檢查您獲得某些高價值的位置。這個高值是對應於模式的頻率。取消這個值(可能還有一些值),然後進入iFFT。應該清除你的圖像的噪音。 – sepdek
我的意思是回聲,有相同圖像的雙重圖像,第一個中心是(0,0),第二個是(0,20)。 –