同态滤波的过程如下图所示:
代码:
clear all
clc
I0 =imread('56.jpg');
I0=rgb2gray(I0);
I1 = log(double(I0)+1);
I2 =fft2(I1);
N=2;D0=0.05*pi;rh=1.2;r=0.5;
[row,col]=size(I2);
form=1:row
for n=1:col
D1(m,n)=sqrt(m^2+n^2);
H(m,n)=r+(rh/(1+(D0/D1(m,n))^(2*N)));
end
end
I3=I2.*single(H);
I4=ifft2(I3);
I5=exp(I4)-1;
subplot(2,2,1);
imshow(I0);
title('原图像');
subplot(223),imhist(I0)
subplot(2,2,2);
imshow(I5,[]);
title('同态滤波后的图像');
%% 求同态滤波后的直方图
uint_I=real(I5);
Imax=max(uint_I(:));
Imin=min(uint_I(:));
fori=1:size(uint_I,1)
for j=1:size(uint_I,2)
I(i,j)=(uint_I(i,j)-Imin)/(Imax-Imin);
end
end
I=255*I;
I=floor(I);
subplot(224),imhist(uint8(I));
figure,mesh(double(I));
title('Three-dimensional map');
结果:

同态滤波是一种图像处理技术,通过选择适当的滤波器来增强图像的高频部分,即反射分量,同时抑制低频部分,即照度分量。这种方法能够使图像的细节更加突出,提高目标物的可见性。
最低0.47元/天 解锁文章
369

被折叠的 条评论
为什么被折叠?



