首页 > 解决方案 > 为什么在MATLAB中对fft2得到的图像的频谱进行移位、取绝对值和对数变换?

问题描述

我必须在 MATLAB 中使用 FFT 获得灰度图像的频谱并绘制频谱。我使用 fft2()并绘制了输出。

我观看了有关绘制频谱的教程,其中,他们执行fftshit(),取绝对值,应用对数变换,使用缩放像素mat2gray(),然后在绘制频谱之前转换为 uint8。 im2uint8(mat2gray(log(abs(fft_shifted)+1)))

我的问题是,在绘制频谱之前是否有必要执行所有这些步骤?我知道fftshift()用于将频谱集中在第 0 个频率系数附近。执行其他功能有什么用?

我绘制了没有移位、移位后和应用上述步骤后的频谱。

输出

在此之后,我必须对灰度图像应用低通滤波器并比较频谱。(这是一道作业题)

标签: matlabimage-processingfftspectrum

解决方案


推荐阅读