傅里叶频谱中心化matlab代码
时间: 2024-01-16 09:00:49 浏览: 190
傅里叶角谱分析matlab代码-Spectral_Analysis:自动光谱和交叉光谱分析以识别∂18O同位素和夏季日照中的米兰科维奇周期
傅里叶频谱中心化是将频谱的中心移到图像的中心,使图像的低频部分位于中心位置。下面是一个用MATLAB实现傅里叶频谱中心化的代码示例。
首先,读入图像并将其转换为灰度图像:
```matlab
img = imread('image.jpg'); % 读入图像
img_gray = rgb2gray(img); % 转换为灰度图像
```
然后,对图像进行傅里叶变换:
```matlab
fft_img = fft2(img_gray); % 进行二维傅里叶变换
fft_shift = fftshift(fft_img); % 将频谱中心化
```
最后,将中心化后的傅里叶频谱进行可视化:
```matlab
fft_shift_abs = abs(fft_shift); % 取频谱的绝对值
fft_shift_abs_log = log(fft_shift_abs + 1); % 对频谱取对数,加1以避免log(0)的错误
fft_shift_abs_log_scaled = mat2gray(fft_shift_abs_log); % 将频谱规范化到0-1之间
figure;
imshow(fft_shift_abs_log_scaled); % 显示中心化后的频谱
title('Centered Fourier Spectrum'); % 设置标题
```
该代码将图像的傅里叶频谱进行中心化,并用灰度图像显示在MATLAB图像窗口中。
阅读全文