matlab 程序读取一张图片,显示图片,并显示图片的频谱图(调用fft2)
时间: 2024-05-02 08:21:09 浏览: 70
FFT的频谱信号分析Matlab示例程序,FFT分析信号频谱matlab,matlab
下面是一个简单的 MATLAB 程序,可以读取一张图片,显示该图片,并显示其频谱图:
```matlab
% 读取图片
img = imread('image.jpg');
% 显示图片
figure(1);
imshow(img);
title('原始图片');
% 计算频谱
freq = fft2(img);
% 取绝对值,将复数的频谱变成实数
freq = abs(freq);
% 将频谱图像中心移动到图像中心
freq = fftshift(freq);
% 显示频谱图像
figure(2);
imshow(log(1+freq), []);
title('频谱图');
```
解释:
- `imread` 函数用于读取图片。在这个例子中,图片文件名为 `image.jpg`,程序应该与该图片位于同一目录下。
- `imshow` 函数用于显示图片。在这个例子中,我们将原始图片显示在一个名为 “原始图片” 的窗口中。
- `fft2` 函数用于计算图片的二维傅里叶变换。这将生成一个复数的频谱图像。
- `abs` 函数用于取复数频谱图像的绝对值,将其变成实数。
- `fftshift` 函数用于将频谱图像中心移动到图像中心。
- `imshow` 函数用于显示频谱图像。在这个例子中,我们使用 `log` 函数对频谱图像取对数,以便更好地显示频率范围。`[]` 表示使用默认的显示范围。
阅读全文