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)
延伸阅读
    三峡大坝项目融资与投资案例分析,摘要200字,3-5个关键词,结合《项目融资与投资》书本,分析案例,结合自己观点,最终总结观点,写一篇5000字论文
    所谓全球网络安全
    活睡眠yoyo球回收物理原理
    如何进行分布式系统设计和优化?
    经济学中的沉没成本