[問題] 十萬火急的DFT問題已回收

看板MATLAB作者 (小時候不懂事)時間16年前 (2009/04/27 20:18), 編輯推噓4(407)
留言11則, 3人參與, 最新討論串1/1
a=imread('lena.bmp') b=fft2(a); imshow(b); c=ifft2(b); imshow(c); 這是程式碼一段 照理說作完DFT之後在作IDFT 出來的圖應該是差不多的 可是我最後出來的圖示一片空白 誰能告訴我 到底怎樣才能把一張影像做DFT之後SHOW出頻譜 之後再作IDFT反轉換回來 拜託拜託 小弟還只是matlab新手 希望有好心人幫幫我 而且要快>< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.71.3.123

04/27 20:25, , 1F
c=ifft2(uint8(b));
04/27 20:25, 1F

04/27 20:27, , 2F
樓上高手可否解釋一下WHY呢><?
04/27 20:27, 2F

04/27 20:29, , 3F
說錯了,是 imshow(uint8(c))
04/27 20:29, 3F

04/27 20:30, , 4F
我照E大的改了 可是最後跟原圖差好多 不是應該差不多嗎
04/27 20:30, 4F

04/27 20:30, , 5F
因為imshow要用的資料型態是uint8,不能用double
04/27 20:30, 5F

04/27 20:32, , 6F
用三樓那行不行嗎?我試可以呀
04/27 20:32, 6F

04/27 20:32, , 7F
謝謝你:)
04/27 20:32, 7F

04/27 20:32, , 8F
一樓那行不用
04/27 20:32, 8F

04/27 20:33, , 9F
可以喔 不過還想請問 如果不用內建函式要怎麼直接做DFT
04/27 20:33, 9F

04/27 20:37, , 10F
如果是最基本的DFT,就按照定義用迴圈跑囉
04/27 20:37, 10F

04/28 01:21, , 11F
DFT的計算一般不會直接用定義做,很沒效率,詳見 FFT
04/28 01:21, 11F
文章代碼(AID): #19zQ9v9m (MATLAB)
文章代碼(AID): #19zQ9v9m (MATLAB)