您的位置:首页 > 编程语言 > MATLAB

基于MATLAB中fft2函数的二维图像数据的频谱生成代码

2015-05-07 18:05 561 查看
如何利用MATLAB中的fft2函数对二维的图像数据进行频域变换

clc

clear all

close all

I = imread('testwomen.jpg');    %读取源图像

size(I) %显示图像采样值

figure(1);

imshow(I);

title('the original photo')

%---------------------------

I1 = I(:,:,1);

fftI = fft2(I1);

A1 = abs(fftI);         %取模值

B1 = (A1 - min(min(A1))) / (max(max(A1)) - min(min(A1))) * 255;  %归一化显示

figure(2)

imshow(B1);

title('the frequency spectrum without shiftfft()')

%---------------------------

sfftI = fftshift(fftI);

A = abs(sfftI);

B = (A - min(min(A))) / (max(max(A)) - min(min(A))) * 255;

figure(3)

%imshow(B,[0,255]);  

imshow(B);
title('the frequency spectrum with shiftfft()')







黑白可以用数值表示,即信号值的大小。上图是二维图像信号的频谱,横轴代表x方向的频率,纵轴代表y方向的频率,黑白表示不同频率分量振幅的强弱。

频谱的中心代表了低频信号的振幅,频谱远离中心位置的灰度代表了高频成分振幅的大小。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  fft matlab
相关文章推荐