失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 用matlab对图像进行二维傅里叶变换

用matlab对图像进行二维傅里叶变换

时间:2021-01-13 08:12:15

相关推荐

用matlab对图像进行二维傅里叶变换

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

I=rgb2gray(I); %将图像转换成灰度图,图像的数值范围为[0,255]

I=im2double(I);%将图像的数据格式转换为double型的,此时图像的数值范围由原来的[0,255],变成了[0,1]

F=fft2(I); %进行二维傅里叶变换

F=fftshift(F); %对傅里叶变换后的图像进行象限转换

F=abs(F);%求傅里叶变换的模,我们都知道傅里叶变换后的结果为复数,包含real实部和imag虚部,

%abs就是求复数的模,经过这一步,F的类型由复数的double变成了实数的double,

T=log(F+1); %用log是因为傅里叶变换后的数值范围非常大,maxF = 2.04e+05,minF = 0.009,

%(F+1)是因为对(0,1)之间的x值,经过log(X)变换后会变成负数,而log(X+1)则将所有的x值,映射成正数,数值范围也更小一些。

figure; %出图

imshow(T,[]);%显示图像,之所以用imshow(T,[]);而不是imshow(T)。是因为即使经过对数变换后T的取值范围仍然大于[0,1],maxT=12.23,minT=0.009。imshow(T)只会显示[0,1]的值,而imshow(T,[]) 会根据灰度图的数值范围来显示图像,相当于将[0.09,12.23]映射到[0,1]显示。

如果觉得《用matlab对图像进行二维傅里叶变换》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。