1. 使用同态滤波增强全身PET图像:
2.matlab代码实现:
clear;clc;close all;
IM1 = imread('PET_image.tif');
figure;
subplot(121);imshow(IM1);title('原始图像');
IM1 = double(IM1);%原图
IM2 = log(IM1+1); %对数变换,在指数运算后记得减去1
[row,col] = size(IM2);
P=row*2;Q=col*2;
Zxy = zeros(P,Q);
Zxy(1:row,1:col) = IM2;
Zuv=fftshift(fft2(Zxy));%经过DFT的Zxy
result_Homomorphic_f = zeros(P,Q);%同态滤波频域结果
result_Homomorphic_t = zeros(P,Q);%同态滤波空间域结果
center_x = fix(P/2);
center_y = fix(Q/2);
rL=0.5;rH=2;c=1;D0 =80;
for u=1:P
for v=1:Q
d_uv2 = (u-center_x)^2+(v-center_y)^2;
H_uv = (rH-rL)*(1-exp(-c*(d_uv2/(D0*D0))))+rL;
result_Homomorphic_f(u,v)= H_uv * Zuv(u,v);
end
end
result_Homomorphic_t = ifft2(iff