同態濾波

%同態濾波實現
%%
clc;clear all;close all;
img=imread('C:\Users\meng\Desktop\124.bmp');
subplot(2,2,1),imshow(img),title('the initial picture');
img=im2double(img);
lnimg=log(img+0.000001);%取對數
Fimg=fft2(lnimg);%傅里葉變換
P=fftshift(Fimg);%將頻域原點移到圖像中心;
[M,N]=size(P);
subplot(2,2,2),imshow(uint8(abs(P)),[]),title('濾波前的頻譜圖像')
x0=floor(M/2);
y0=floor(N/2);
%同態濾波參數設置
D0=100;
c=1.50;
Hh=2;Hl=0.5;%Hh>1,Hl<1
for u=1:M 
for v=1:N 
D(u,v)=(u-x0)^2+(v-y0)^2;
H(u,v)=(Hh-Hl)*(1-exp(-c*(D(u,v)^2/D0^2)))+Hl;%同態濾波器函數
end 
end
hImg=Fimg.*H;%濾波,矩陣點乘
Q=fftshift(hImg);%傅里葉逆變換
subplot(2,2,3),imshow(uint8(abs(Q))),title('濾波後的頻譜圖像')
gImg=ifft2(hImg);%反傅立葉變換 
Y=exp(gImg); %取指數 
J=im2uint8(Y);
subplot(2,2,4),imshow(J),title(' the hormomorphic image')
figure(2)
imshow(J)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章