声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 5616|回复: 5

[图像处理] 请教matlab中如何对图像做Fourier变换

[复制链接]
发表于 2006-10-24 10:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
在matlab中对图像进行傅里叶变换,
%img为原始图像

(一)看到别人是这么做的
img1=double(img)/255;
img_mean=mean2(img1);
centered_img=img1-img_mean;
img_fft1=fft2(centered_img);
img_fft1=fftshift(img_fft1);
不明白问什么对图像作归一化,用减去图像中值后才作傅里叶变换???
(二)
自己想应该这么做
img2=double(img);
img_fft2=fft2(img2);
img_fft2=fftshift(img_fft2);

img_=ifft2(img_fft2);  %反变换

但是有两个问题:
1 img_是反变换后的图像,应该和img2相等才对呀
可是结果并不一样  下面分别是    原始图像、反变换后取得4*4块
156        158        154        154
156        158        154        154
157        155        153        153
155        152        153        152             --------------img2

156        -158        154        -154
-156        158        -154        154
157        -155        153        -153
-155        152        -153        152             --------------反变换后的img_
这是为什么呢??

2 (一)和(二)作出的结果不一样,附图是对lena做变换后的
imshow(abs(img_fft1),[]);
imshow(abs(img_fft2),[]);
(一)的结果对吗,(二)呢,为什么?
re.jpg
回复
分享到:

使用道具 举报

发表于 2006-10-24 19:17 | 显示全部楼层
1. 归一化主要是为了数据处理方便提出来的,它使得数据处理更加便捷快速,同时保证数据中数值小的不被吞食!
减去图像中值也是类似的作用,可以不做该处理!
2. 反变换后需要去模才是你要的结果
3. 两者都对,主要是(二)没有做归一化处理,所以效果上差了很多

评分

1

查看全部评分

 楼主| 发表于 2006-10-25 08:28 | 显示全部楼层
谢谢happy!

关于归一化,我还有一个问题请教:
数据做fft后的最高频率是0.5,这个也是做了归一化吧
那么为什么是0.5,而不是1呢?
发表于 2006-10-27 22:01 | 显示全部楼层
好好。看的不是很明白,不过很舒服。因为问问题问的清楚,答问题答的明白
发表于 2006-10-28 17:34 | 显示全部楼层
原帖由 xfdxz 于 2006-10-25 08:28 发表
谢谢happy!

关于归一化,我还有一个问题请教:
数据做fft后的最高频率是0.5,这个也是做了归一化吧
那么为什么是0.5,而不是1呢?



没明白你这个问题,能否在说明一下?
 楼主| 发表于 2006-10-29 20:27 | 显示全部楼层
这两天不在学校。很感谢happy !!
关于图像做FFT后频率最高是0.5的问题 已经有了初步的理解
图像中的频率是指像素点灰度的变换快慢
那么图像的最高频率当然不是0.5
而作FFT后频率最大0.5  是指对两个相邻的像素变换的最大值 因为对于三个相邻像素而言  最多只能变化一个周期
所以两个相邻像素的变换最大值只能是0.5
问题没有问清楚~~现在说得好像还有点乱
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-25 03:24 , Processed in 0.056469 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表