使用Matlab对灰度图像编程实现2D的傅里叶变换

时间:2022-10-13 06:30:27

1.      先载入一幅灰度图像,如下:

使用Matlab对灰度图像编程实现2D的傅里叶变换

(非灰度图)

2. 利用函数fft2,对其进行快速傅立叶变换, 并利用函数fftshift 将变换后的图像原点移动到频率矩形的中心。

3. 利用abs()函数来得到傅立叶频谱;angle()函数得到相位图;

4. 利用imshow 来可视化图像,观察图像的特点;

一.    结果(图像):

使用Matlab对灰度图像编程实现2D的傅里叶变换

二.    分析说明:

1. 在载入图片的时候要注意图片要存放到该文件的文件夹中。

2. 下载的图片看似是灰度图,实际上并非是灰度图,所以加多了一句代码“A=rgb2gray(A)”

三.    附件程序

A=imread('1.jpg'); %载入图片

A=rgb2gray(A)

B=fftshift(fft2(A)); % 进行傅立叶变换

subplot(231)

imshow(A);

title('原始图像');

subplot(232)

imshow(abs(B),[ ]);

title('原始频谱图');

subplot(233)

imshow(log(abs(B)),[ ]);

title('取对数后的频谱图');

subplot(234)

imshow(angle(B),[ ]);

title('相位图');

subplot(235)

imshow(real(B),[ ]);

title('实部图');

subplot(236)

imshow(imag(B),[ ]);

title('虚部图');

colormap(jet(64)) %给图片上色

转自:http://blog.163.com/luoyun_dreamer/blog/static/215529070201322612858437/