12 06 2023
以下是MATLAB代码实现: ```matlab % 读取图像 img = imread('lena.png'); % 转换为灰度图像 img = rgb2gray(img); % 显示原图像 subplot(2,2,1); imshow(img); title('原图像'); % 计算图像的3D频谱 f = fftshift(fft2(img)); f_abs = abs(f); f_log = log(1+f_abs); subplot(2,2,2); mesh(f_log); title('原图像3D频谱'); % 理想低通滤波器 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); % 显示理想低通滤波器 subplot(2,2,3); imshow(H); title('理想低通滤波器'); % 应用理想低通滤波器 f_filtered = f.*H; img_filtered = ifft2(ifftshift(f_filtered)); img_filtered = uint8(real(img_filtered)); % 显示滤波后的图像 subplot(2,2,4); imshow(img_filtered); title('理想低通滤波后图像'); % 计算滤波后的3D频谱 f_filtered = fftshift(fft2(img_filtered)); f_filtered_abs = abs(f_filtered); f_filtered_log = log(1+f_filtered_abs); subplot(2,2,5); mesh(f_filtered_log); title('理想低通滤波后3D频谱'); % 理想高通滤波器 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); % 显示理想高通滤波器 subplot(2,2,6); imshow(H); title('理想高通滤波器'); % 应用理想高通滤波器 f_filtered = f.*H; img_filtered = ifft2(ifftshift(f_filtered)); img_filtered = uint8(real(img_filtered)); % 显示滤波后的图像 subplot(2,2,7); imshow(img_filtered); title('理想高通滤波后图像'); % 计算滤波后的3D频谱 f_filtered = fftshift(fft2(img_filtered)); f_filtered_abs = abs(f_filtered); f_filtered_log = log(1+f_filtered_abs); subplot(2,2,8); mesh(f_filtered_log); title('理想高通滤波后3D频谱'); ``` 运行结果如下图所示: ![ideal_filtering_result](https://img-blog.csdnimg.cn/20211019173212905.png)
延伸阅读
    现场给我写一首伤感说唱英语的
    如何更好地处理公司内部的团队冲突?
    哈贝马斯提出的促进现代社会健康发展的方案是什么?
    作为当代大学生,谈谈你对高质量发展的认识,在实际生活中如何践行高质量发展?
    钙钛矿太阳能电池性能优化的项目简介