24小时热门版块排行榜    

查看: 2952  |  回复: 7

Crespo97

新虫 (初入文坛)

[求助] 求助Matlab的fft2与ifft2 已有4人参与

我先把一张jpg图片A读入Matlab,然后对其进行fft2傅里叶变换,再进行ifft2反变换,可以得到原图A。问题是这样的,我先对原图片A进行fft2变换,得到图片B,然后把图片B保存下来。然后重新读入图片B,对B进行ifft2反变换,这时得到的不是原图A,而是一张全黑的图片C。请问是为什么?
回复此楼

» 收录本帖的淘帖专辑推荐

经验之谈

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liuailin6338

铜虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
是不是数据格式有问题,图像格式一般是uint8,进行变换时最好转换为double形式。
小木虫,有意思!
2楼2014-03-09 21:15:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liuailin6338

铜虫 (正式写手)

【答案】应助回帖

显示时再转换为uint8格式。
小木虫,有意思!
3楼2014-03-09 21:17:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

flywithyu

铜虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
一般都是格式问题
处理的时候需要转换为double,显示的时候需要转换为uint8
你可以打开变换后的变量,看看值对不对,如果对的话试着用mat2gray变量转换后再显示
4楼2014-03-10 09:24:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gorgan

木虫之王 (文学泰斗)

无意苦争春

【答案】应助回帖

感谢参与,应助指数 +1
然后把图片B保存下来
--保存的时候,数据就可能出现损失,例如jpeg压缩
然后重新读入图片B,对B进行ifft2反变换
--用imread读入图像时,数据是uint8格式,要转成double才能进行ifft2
无我相,无人相,无众生相,无寿者相
5楼2014-03-10 09:29:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

scorpion26

铜虫 (小有名气)

clear all一下,重新跑一遍程序就好了!
6楼2015-06-02 19:58:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kafeitu

新虫 (小有名气)

请问楼主现在解决了吗,遇到了同样的问题,求助
7楼2018-04-02 16:54:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ztf_1995

新虫 (初入文坛)

【答案】应助回帖

A进行fft2之后返回值是一个复数数组,你再把它保存到图片,就会丢失复数的虚部信息,而且会压缩B里的数据。
——建议的解决办法,可以把B保存为mat文件。
——如果你的B是用来显示,可以对A的fft2图像取赋值后进行log变换,这时候的图像灰度级一般可以用来显示。
8楼2018-05-03 10:07:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Crespo97 的主题更新
信息提示
请填处理意见