对灰度图像二维傅立叶变换 matlab
时间: 2023-09-16 15:08:03 浏览: 94
可以使用 Matlab 中的 `fft2` 函数对灰度图像进行二维傅立叶变换。具体步骤如下:
1. 读入灰度图像并显示:
```matlab
% 读入灰度图像
img = imread('lena_gray.png');
% 显示图像
imshow(img);
```
2. 对图像进行二维傅立叶变换:
```matlab
% 对图像进行二维傅立叶变换
F = fft2(double(img));
% 将零频分量移到频谱中心
F = fftshift(F);
```
3. 可视化结果:
```matlab
% 显示原图像和频谱图像
figure;
subplot(1,2,1);
imshow(img, []);
title('原图像');
subplot(1,2,2);
imshow(log(abs(F)+1), []);
title('频谱图像');
```
其中,`fft2` 函数返回的是复数形式的频域图像,我们需要计算其幅值并取对数后才能进行可视化,即 `log(abs(F)+1)`。
完整代码如下:
```matlab
% 读入灰度图像
img = imread('lena_gray.png');
% 显示图像
imshow(img);
% 对图像进行二维傅立叶变换
F = fft2(double(img));
% 将零频分量移到频谱中心
F = fftshift(F);
% 显示原图像和频谱图像
figure;
subplot(1,2,1);
imshow(img, []);
title('原图像');
subplot(1,2,2);
imshow(log(abs(F)+1), []);
title('频谱图像');
```
阅读全文