图像傅里叶变换+1阶频谱matlab
时间: 2023-11-03 14:03:41 浏览: 87
以下是一个图像的傅里叶变换和1阶频谱的MATLAB代码示例:
```matlab
% 读取图像
img = imread('lena.png');
% 将图像转换为灰度图
img_gray = rgb2gray(img);
% 对灰度图进行傅里叶变换
fft_img = fft2(img_gray);
% 将频谱中心移到图像中心
fft_img_shifted = fftshift(fft_img);
% 计算频谱的1阶幅度谱和相位谱
abs_fft_img = abs(fft_img_shifted);
phase_fft_img = angle(fft_img_shifted);
% 显示原图像、幅度谱和相位谱
figure;
subplot(1, 3, 1);
imshow(img_gray);
title('原图像');
subplot(1, 3, 2);
imshow(log(1 + abs_fft_img), []);
title('幅度谱');
subplot(1, 3, 3);
imshow(phase_fft_img, []);
title('相位谱');
```
在这个示例中,我们使用了`imread`函数读取了一个图像,然后使用`rgb2gray`函数将其转换为灰度图像。接着,我们使用`fft2`函数对灰度图像进行二维傅里叶变换,并使用`fftshift`函数将频谱中心移到图像中心。最后,我们计算了频谱的1阶幅度谱和相位谱,并使用`imshow`函数将原图像、幅度谱和相位谱显示出来。注意,在显示幅度谱时,我们使用了`log(1 + abs_fft_img)`来增强图像的对比度。
阅读全文