同态滤波

%同态滤波实现
%%
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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章