选择测试图像实现理想低通滤波的Matlab代码
时间: 2024-05-02 15:22:23 浏览: 68
基于matlab的理想低通滤波实验.zip
以下是一个简单的Matlab代码,可用于实现理想低通滤波:
```matlab
% 读入测试图像
img = imread('test_image.jpg');
% 计算图像的FFT
img_fft = fftshift(fft2(img));
% 定义理想低通滤波器的截止频率
D0 = 50;
% 计算滤波器
[M, N] = size(img);
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 = double(D <= D0);
% 应用滤波器
filtered_img_fft = H .* img_fft;
filtered_img = real(ifft2(ifftshift(filtered_img_fft)));
% 显示原始图像和滤波后的图像
figure;
subplot(1, 2, 1);
imshow(img);
title('原始图像');
subplot(1, 2, 2);
imshow(filtered_img, []);
title('滤波后的图像');
```
注意:该代码只是一个简单的实现,可能需要根据实际应用进行优化和修改。
阅读全文