matlab练习程序(图像傅里叶变换,幅度谱,相位谱)
时间: 2023-06-22 11:28:36 浏览: 183
以下是一个简单的 MATLAB 练习程序,用于进行图像的傅里叶变换、幅度谱和相位谱的计算和显示。
```matlab
% 读入图像
img = imread('test.jpg');
% 转换为灰度图像
img_gray = rgb2gray(img);
% 显示原图和灰度图像
figure;
subplot(1,2,1);
imshow(img);
title('Original Image');
subplot(1,2,2);
imshow(img_gray);
title('Grayscale Image');
% 对灰度图像进行傅里叶变换
img_fft = fft2(img_gray);
% 计算幅度谱和相位谱
img_amp = abs(img_fft);
img_phase = angle(img_fft);
% 显示幅度谱和相位谱
figure;
subplot(1,2,1);
imshow(log(1+img_amp), []);
title('Amplitude Spectrum');
subplot(1,2,2);
imshow(img_phase, []);
title('Phase Spectrum');
```
上述代码首先读入一张彩色图像,并将其转换为灰度图像。然后对灰度图像进行傅里叶变换,计算出其幅度谱和相位谱。最后将幅度谱和相位谱显示出来。
其中,`log(1+img_amp)` 是为了将幅度谱的值取对数,并加上一个常数 1,以便更好地显示。`[]` 表示使用默认的显示范围。
你可以将该程序保存为 `fft_demo.m`,然后在 MATLAB 中运行。当然,你需要将 `test.jpg` 替换为你自己的图像文件名。
阅读全文