function exponential_low_Callback(hObject, eventdata, handles)指数低通滤波器对一幅加噪图像进行平滑处理的matlab代码
时间: 2024-03-07 22:46:43 浏览: 78
基于Matlab的图像处理算法-低通滤波器
5星 · 资源好评率100%
以下是使用指数低通滤波器对一幅加噪图像进行平滑处理的 Matlab 代码:
```matlab
% 读入图像并加入高斯噪声
I = imread('lena.png');
J = imnoise(I, 'gaussian', 0, 0.01);
% 定义滤波器参数
D0 = 50; % 截止频率
alpha = 0.1; % 阻尼系数
% 计算频率域滤波器
[M, N] = size(J);
u = 0:(M-1);
v = 0:(N-1);
idx = find(u>M/2);
u(idx) = u(idx)-M;
idy = find(v>N/2);
v(idy) = v(idy)-N;
[V, U] = meshgrid(v, u);
D = sqrt(U.^2 + V.^2);
H = 1./(1 + (D/D0).^(2*alpha));
% 应用频率域滤波器
K = fft2(J);
L = K .* H;
Lp = real(ifft2(L));
% 显示结果
figure;
subplot(1, 2, 1);
imshow(J);
title('加噪图像');
subplot(1, 2, 2);
imshow(uint8(Lp));
title('滤波结果');
```
在上述代码中,我们首先读入一幅灰度图像并加入高斯噪声。然后,我们定义了指数低通滤波器的两个参数:截止频率 D0 和阻尼系数 alpha。接下来,我们计算频率域上的滤波器 H,并将其应用于加噪图像 J,得到滤波结果 Lp。最后,我们将加噪图像和滤波结果在同一窗口中显示出来,方便对比观察。
阅读全文