matlab显示图像频谱代码
时间: 2023-10-31 20:07:42 浏览: 104
用matlab对图像进行频谱分析代码-HyperSpectralToolbox:从Sourceforge派生的HyperSpectralMat
这段Matlab代码的作用是将图像转换成频域的幅度谱并显示出来。具体实现过程如下:
1. 读取图像并将其转换为灰度图像。
2. 对灰度图像进行二维傅里叶变换(FFT)。
3. 对傅里叶变换后的结果取绝对值并加1,然后取对数,得到幅度谱。
4. 对傅里叶变换后的结果进行平移,使得低频分量位于中心位置。
5. 对平移后的结果取绝对值并加1,然后取对数,得到平移后的幅度谱。
6. 对平移后的结果进行反傅里叶变换(IFFT),得到逆变换后的图像。
7. 将逆变换后的图像转换为8位无符号整数类型,并显示出来。
下面是Matlab显示图像频谱的代码:
```
clear clc
img=imread('f2.jpg');
subplot(2,2,1);imshow(img);title('原图');
f=rgb2gray(img);
F=fft2(f);
F1=log(abs(F)+1);
subplot(2,2,2);imshow(F1,[]);title('幅度谱');
Fs=fftshift(F);
S=log(abs(Fs)+1);
subplot(2,2,3);imshow(S,[]);title('平移后的幅度谱');
fr=real(ifft2(ifftshift(Fs)));
ret=im2uint8(mat2gray(fr));
subplot(2,2,4);imshow(ret);title('逆变换');
```
阅读全文