数字图像处理理想高通滤波器matlab代码
时间: 2023-09-23 18:07:41 浏览: 165
基于MATLAB的数字图像课程设计-图像频域增强高通滤波器算法设计 (2).docx
5星 · 资源好评率100%
以下是一个简单的数字图像处理理想高通滤波器的MATLAB代码示例:
```matlab
% 读取图像
img = imread('lena.png');
% 将图像转换为灰度图像
gray_img = rgb2gray(img);
% 计算图像的傅里叶变换
fft_img = fft2(gray_img);
% 构建理想高通滤波器
[M, N] = size(fft_img);
D0 = 50; % 我们选择的截止频率为50
H = zeros(M, N);
for i = 1:M
for j = 1:N
D = sqrt((i-M/2)^2 + (j-N/2)^2);
if D >= D0
H(i, j) = 1;
end
end
end
% 将滤波器与傅里叶变换图像相乘
fft_filtered_img = H .* fft_img;
% 计算滤波后的图像
filtered_img = real(ifft2(fft_filtered_img));
% 显示原始图像和滤波后的图像
subplot(1, 2, 1); imshow(gray_img); title('Original Image');
subplot(1, 2, 2); imshow(filtered_img, []); title('Filtered Image');
```
在这个示例中,我们首先读取了一张图像,并将其转换为灰度图像。然后,我们计算了图像的傅里叶变换,并构建了一个理想高通滤波器。接下来,我们将滤波器与傅里叶变换图像相乘,得到滤波后的图像。最后,我们显示了原始图像和滤波后的图像。
阅读全文