• 大小: 1KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-08
  • 语言: Matlab
  • 标签: 图像增强  

资源简介

用MATLAB语言实现了同态滤波法来对图像进行增强,效果很好

资源截图

代码片段和文件信息

%同态滤波
clc;
close all;
clear all;
I = imread(‘D:\Backup\桌面\数字图像处理\图像锐化实验\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);%取对数加1,避免对零取对数,ln()函数
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;%锐化参数。控制滤波器函数斜面的锐化
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;%高斯同态滤波器
f

评论

共有 条评论