基於matlab的退化圖像復原(二)------逆濾波復原


 

差不多就是這個理論,傅里葉變換之后除掉退化函數的傅里葉變換,就變回來了。

說是這么說,寫出來就是這樣。手寫公式簡單得多,人懶就是任性。

matlab代碼。

 

clc
I=imread('src.png');
I0=rgb2gray(I);
subplot(231);
imshow(I0);
title('src');
[m,n]=size(I0);
F=fftshift(fft2(I0));
k=0.0025;
H=[];
for u=1:m
    for v=1:n
        q=((u-m/2)^2+(v-n/2)^2)^(5/6);
        H(u,v)=exp((-k)*q);
    end
end
G=F.*H;
I1=abs(ifft2(fftshift(G)));
subplot(232);
imshow(uint8(I1))
title('退化');

I2=imnoise(uint8(I1),'gaussian',0,0.001);
subplot(233);
imshow(uint8(I2));
title('加噪聲');
F0=fftshift(fft2(I2));
F1=F0./H;
I3=ifft(fftshift(F1));
subplot(236);
imshow(uint8(I3));
title('退化噪聲復原')

F2=fftshift(fft2(I1));
F3=F2./H;
I4=ifft(fftshift(F3));
subplot(235);
imshow(uint8(I4));
title('退化復原')

F4=fftshift(fft2(I0));
I5=ifft(fftshift(F4));
subplot(234);
imshow(uint8(I5));
title('直接傅里葉變換回來')

  

上面主要是傅里葉除的矩陣要一樣維度,所以給了個[m,n]的矩陣,好像局限性有點大。

我個人想是不是逆卷積的效果更好一點,主要是傅里葉變來變去的相位難以控制。

 

    參考《MATLAB圖像處理超級學習手冊》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM