仪器网(yiqi.com)欢迎您!

| 注册 登录
网站首页-资讯-专题- 微头条-话题-产品- 品牌库-搜索-供应商- 展会-招标-采购- 社区-知识-技术-资料库-方案-直播- 视频

问答社区

对一幅图像傅里叶变换后,显示其频谱图的MATLAB语句?

happy黑总 2015-03-22 12:22:42 424  浏览
  • 对一幅图像进行傅里叶变换后,显示其频谱图为什么有时候用imshow(abs(F))有时候用imshow(log(abs(F)))?有什么区别和联系呢?(F为图像的傅里叶变换)

参与评论

全部评论(2条)

  • 卡米拉tks 2017-09-02 06:18:27
    很简单。因为进行了傅氏变换以后图像上每点的值都成了复数,取abs(即取模值)后才能显示为图像。但是问题是进行变换再取模值后数字有时会变得非常大,拿常用的数据类型uint8(即8位无符号整型数)为例,所能表示的范围仅为0~255,如果数据超过255,在显示图像时系统自动把数据变成255,所以如果有很多数据都超过255,即使这些数据之间差别也蛮大,傅立叶变换显示的图像只会白茫茫一片(255代表白色),看不出差异来。所以需要对这些数据进行处理,常用的就是取对数(log),将很大的数据变成小一些的数据,落在0~255之间,能够准确地表示在图像上,更直观地发现数据之间的差异,也是进行傅氏变换的意义所在,区分高频分量和低频分量。

    赞(16)

    回复(0)

    评论

  • dalong2780 2015-03-23 00:00:00
    f = imread('tire.tif'); imshow(f) F = fft2(f); % 傅氏变换 Fc = fftshift(F); % ZX化 Fm = abs(Fc); % 取模 figure, imshow(Fm, [ ]) figure, imshow(log(1+Fm), [ ]) % 对数变换,增强显示视觉效果 G = ifftshift(Fc); % 对Fc去ZX化 g = ifft2(G); % 对G逆变换 figure, imshow(g) % 原图像 你要注意整个流程,f ---> F ----> Fc , 所以要回去的话当然是Fc --- > G --- > g,就是先对Fc去ZX化得到G,再对G逆变换得到g,这样才行。

    赞(2)

    回复(0)

    评论

获取验证码
我已经阅读并接受《仪器网服务协议》

热门问答

对一幅图像傅里叶变换后,显示其频谱图的MATLAB语句?
对一幅图像进行傅里叶变换后,显示其频谱图为什么有时候用imshow(abs(F))有时候用imshow(log(abs(F)))?有什么区别和联系呢?(F为图像的傅里叶变换)
2015-03-22 12:22:42 424 2
matlab中如何对一组数据进行fft变换后得到频谱图??
 
2017-11-25 01:56:49 429 1
请问各位大师怎么用matlab对一串数据进行傅立叶分析并显示它的频谱图
我这里有一部分数据: 0.5 94.9362 1 94.93527214 1.5 94.93503525 2 94.93445249 2.5 94.93461476 3 94.93394304 3.5 94.93274235 4 94.93580121 4.5 94.93511272 5 94.93302143 5.5 94.93153452 6 94.93442809 6.5 94.9309247 7 94.93115934 ... 我这里有一部分数据: 0.5 94.9362 1 94.93527214 1.5 94.93503525 2 94.93445249 2.5 94.93461476 3 94.93394304 3.5 94.93274235 4 94.93580121 4.5 94.93511272 5 94.93302143 5.5 94.93153452 6 94.93442809 6.5 94.9309247 7 94.93115934 7.5 94.9320935 8 94.93341999 8.5 94.93067732 9 94.93173663 9.5 94.9330748 10 94.93087403 10.5 94.93366176 11 94.93049245 11.5 94.93358027 12 94.93134502 12.5 94.92932793 13 94.93180484 13.5 94.93265686 14 94.9331705 14.5 94.93260899 15 94.93233976 15.5 94.93334018 16 94.93074473 16.5 94.93188228 17 94.93157296 17.5 94.93212544 18 94.93181943 18.5 94.93132859 19 94.93134107 19.5 94.93033395 20 94.93142374 20.5 94.93092159 21 94.93190699 21.5 94.93143497 22 94.93129281 22.5 94.93096294 23 94.92990662 23.5 94.92803554 24 94.93038581 24.5 94.93064658 25 94.92879061 25.5 94.92974871 26 94.92913806 26.5 94.92812154 27 94.92944842 27.5 94.92826627 28 94.92876239 28.5 94.92819863 29 94.92825808 29.5 94.92819297 30 94.92933505 30.5 94.92815608 31 94.92592634 31.5 94.92825724 32 94.92909336 32.5 94.92880349 33 94.92841481 33.5 94.92723641 34 94.92749196 34.5 94.93029198 35 94.92806036 35.5 94.92703643 36 94.93063142 36.5 94.93026339 37 94.92941029 37.5 94.92988634 38 94.92922443 38.5 94.9297646 39 94.93011931 39.5 94.9291938 40 94.92846154 40.5 94.92943058 41 94.92907763 41.5 94.93125277 42 94.92918426 42.5 94.92904483 43 94.92995236 43.5 94.92876487 44 94.92783965 44.5 94.92946889 45 94.92802072 45.5 94.92881091 46 94.92911642 46.5 94.92775348 47 94.92876266 47.5 94.93004059 48 94.92691065 48.5 94.930602 49 94.92828116 49.5 94.92792111 50 94.9293082 50.5 94.92847192 51 94.92827673 51.5 94.92913903 52 94.92831857 52.5 94.92783109 53 94.92959324 53.5 94.92682129 54 94.92826131 54.5 94.92971349 55 94.92874919 55.5 94.92797852 56 94.92942542 56.5 94.93126466 57 94.92794306 57.5 94.92975804 其中diyi列是采样时间,单位是秒;第二列是采样得到的数据, 我知道有FFT就可以的 但我对中间的参数设置和显示不是很明了 希望有大师能给我完整的运行程序(7.0版本的). 拜托!!!急用!!! 展开
2018-11-24 10:34:42 330 0
怎么用matlab显示高光谱图像单一谱段的图像
高光谱数据是由modis获取的hdf文件格式
2018-11-27 22:08:02 330 0
用MATLAB画正弦函数 ,如何分析频谱图?
>> clear >> N=1000; >> fs=100; >> n=0:N-1; >> t=n/fs; >> y=3*sin(2*t); >> plot(y); >> y1=fft(y,N); >> y2=abs(y1); >> plot(y2);
2015-06-16 20:18:43 332 1
利用excel进行傅里叶分析做出了数据的频谱图后,怎么对频谱图进行分析
 
2016-05-21 19:28:05 455 1
如何用matlab显示多光谱图像啊?求教
 
2012-02-13 04:09:03 646 1
labview能实现频谱仪的频谱图像实时显示吗
 
2014-01-20 01:07:55 286 2
图像的傅立叶频谱图有何特点?用于分析图像有什么优势
 
2017-05-13 01:00:04 384 1
图像的傅立叶频谱图有何特点?用于分析图像有什么优势
 
2017-05-17 19:16:35 639 1
怎样用MATLAB画正弦函数以及怎样看频谱图?
clear all; x=0:0.01:4*pi; y1=sin(x); figure() subplot(2,1,1) plot(y1) grid on subplot(2,1,2) stem(abs(fft(y1))); 这个程序运行结果如图。我的问题1:为什么函数的周期是六百多?怎样画周期是2pi的正弦函数?2:第二张图怎样反应它的频谱呢?它的横轴和... clear all; x=0:0.01:4*pi; y1=sin(x); figure() subplot(2,1,1) plot(y1) grid on subplot(2,1,2) stem(abs(fft(y1))); 这个程序运行结果如图。我的问题1:为什么函数的周期是六百多?怎样画周期是2pi的正弦函数?2:第二张图怎样反应它的频谱呢?它的横轴和纵轴表示了什么呢? 展开
2017-10-06 19:00:00 730 1
用matlab怎么输出R单色图像的灰度图
对给定的一幅RGB原始图像(如bmp格式),已经求出该图的R、G、B单 色图像,怎么绘制R、G、B图像各自的直方图啊?
2018-11-25 05:08:57 340 0
已知一个有限数组,进行快速傅里叶变换,得到其频谱,该如何分析呢?
 
2012-08-28 18:04:50 336 1
求助分析一阶二阶sigma-deltaZ后的频谱图
 
2017-04-13 13:39:28 232 1
MATLAB中进行FFT谱分析,如何将频谱图的横坐标转换成频率?
对一段音频信号进行FFT谱分析,长度为500点。横坐标为1-500。现在想将其直接转换为频率,已知采样率为22050HZ 及ZX点对应的实际频率Z大,应该是11025HZ(采样定理)。求达人如何进行转换。使横左边关于ZX点对称,ZX频率为11025HZ [x,fs,bite]=wavread... 对一段音频信号进行FFT谱分析,长度为500点。横坐标为1-500。现在想将其直接转换为频率,已知采样率为22050HZ 及ZX点对应的实际频率Z大,应该是11025HZ(采样定理)。求达人如何进行转换。使横左边关于ZX点对称,ZX频率为11025HZ [x,fs,bite]=wavread('C:\WINDOWS\Media\Windows XP 启动.wav',[1000 1499]); z=x(:,1); y=fft(z); sound(x,fs,bite); subplot(2,1,1);plot(abs(y)); 展开
2010-12-31 21:31:38 729 3
CAD光栅图像描完图后怎么去除原来的图像
 
2011-03-24 09:31:47 246 2
求matlab达人!!如何对采集到的数据进行傅里叶变化,如何画出频谱图?
时间t 位移x 0 1 1.65E-05 0.999983045 3.31E-05 0.99996526 4.96E-05 0.999946645 6.62E-05 0.999927199 0.000148853 0.999817534 0.000231549 0.999687168 0.000314245 ... 时间t 位移x 0 1 1.65E-05 0.999983045 3.31E-05 0.99996526 4.96E-05 0.999946645 6.62E-05 0.999927199 0.000148853 0.999817534 0.000231549 0.999687168 0.000314245 0.999536141 0.000396941 0.999364493 0.000810422 0.998198388 0.001223903 0.996523048 0.001637383 0.99434393 0.002050864 0.991666701 0.004118267 0.971017254 0.00618567 0.938881651 0.008253073 0.896176808 0.010320476 0.843903563 0.013909462 0.733576368 0.017498447 0.60373725 0.021087433 0.460679539 0.024676419 0.310544505 0.028465691 0.150844979 0.032254963 -0.003353877 0.036044235 -0.145975632 0.039833507 -0.272127807 0.0429578 -0.360954094 0.046082092 -0.434033112 0.049206384 -0.490111668 0.052330677 -0.52857146 0.055954892 -0.551040245 0.059579108 -0.550371564 0.063203324 -0.528122443 0.06682754 -0.486716536 0.069973943 -0.437603602 0.073120347 -0.378637957 0.07626675 -0.312278735 0.079413154 -0.241010094 0.08317876 -0.152670404 0.086944367 -0.064957361 0.090709973 0.018408264 0.094475579 0.09442318 0.097733314 0.152397469 0.100991048 0.20177429 0.104248782 0.24165641 0.107506516 0.271553851 0.111244103 0.2933616 0.114981689 0.301924287 0.118719275 0.297806704 0.122456861 0.282036001 0.125608558 0.260685249 以上为采集到的数据,diyi行为时间,第二行为位移,如何用matlab对这组数据进行傅里叶变化?如何画频谱图? 非常感谢各位回答!!! 展开
2017-12-15 15:16:44 524 1
怎样分析频谱图
 
2017-09-15 00:23:51 300 1
怎样分析频谱图
关于状态检测的
2012-08-06 06:26:19 433 2
频谱图如何分析
 
2011-01-20 13:20:59 234 2

10月突出贡献榜

推荐主页

最新话题