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('对比度增强后的幅度谱');
实验结果:

浙公网安备 33010602011771号