資源簡介
用MATLAB語言實現(xiàn)了同態(tài)濾波法來對圖像進行增強,效果很好
代碼片段和文件信息
%同態(tài)濾波
clc;
close?all;
clear?all;
I?=?imread(‘D:\Backup\桌面\數(shù)字圖像處理\圖像銳化實驗\ttlb.bmp‘);
figure(1);
imshow(I);
title(‘原始圖像?ttlb.bmp‘);
[MN]?=?size(I);%計算圖像尺寸
figure(2);
imhist(I);%畫灰度直方圖
grid?on;
title(‘處理前的圖像灰度直方圖‘);
T?=?double(I);
L?=?log(T+1);%取對數(shù)加1,避免對零取對數(shù),ln()函數(shù)
E?=?fft2(L);
%?figure(3);
%?subplot(121);
%?imshow(uint8(real(E)));
%?title(‘頻移前‘);
P?=?fftshift(E);%移到中央
%?subplot(122);
%?imshow(uint8(real(P)));
%?title(‘頻移后‘);
u0?=?fix(M/2);%向下取整
v0?=?fix(N/2);
for?u=1:M
????for?v=1:N
????????D(uv)?=?((u-u0)^2+(v-v0)^2);%D(uv)表示頻率D(uv)到濾波器中心距離的平方
????end
end
c?=?0.5;%銳化參數(shù)。控制濾波器函數(shù)斜面的銳化
XY?=?(M+N)/2;
D0?=?((M-XY)^2+(N-XY)^2)/2;%D0為D(uv)?=?0?時D(uv)的值,表示截止頻率。還可以取D0=max(MN);
Rh?=?2;%高頻增益
Rl?=?0.4;%低頻增益
H??=?(Rh-Rl)*(1-exp(c*(-D/(D0^2))))+Rl;%高斯同態(tài)濾波器
f
評論
共有 條評論