Matlab---数字图像处理---图像的傅里叶变换

自选一幅灰度图像,编写MATLAB程序,完成图像的傅里叶变换并显示图像傅里叶变换谱。

 

1、快速图像傅里叶变换函数

     Y = fft2(X)

2、将图像频谱零频分量移动到图像频谱中心

     Y = fftshift(X)

3、显示频谱图像的时候考虑:复数能否显示出来?如果不能,尝试将幅度谱与相位谱分别显示出来。

4、如果频谱图像对比度较差,请考虑采用对比度增强算法显示频谱图象。

5、对图像频谱做傅里叶反变换,并显示反变换后的图像。(注意频谱平移带来的问题)

 

实现代码:

clc;clear;

I1 = imread('1.png');

I2 = im2double(I1);

Y1 = fft2(I2);

Y2 = fftshift(Y1);

margin = log(abs(Y2));

margin1 = histeq(margin);

phase = log(angle(Y2)*180/pi);

A = ifft2(Y1);



figure;

subplot(231);imshow(I2);title('原图像');

subplot(232);imshow(Y2,[]);title('fft后的图像');

subplot(233);imshow(margin,[]);title('幅度谱');

subplot(234);imshow(phase,[]);title('相位谱');

subplot(235);imshow(A,[]);title('ifft后的图像');

subplot(236);imshow(margin1,[]);title('对比度增强后的幅度谱');

实验结果:

posted @ 2022-05-13 12:29  JimJZY  阅读(1246)  评论(0)    收藏  举报