[問題] 影像處理DFT已回收

看板MATLAB作者 (小時候不懂事)時間16年前 (2009/05/07 01:31), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串1/3 (看更多)
修影像處理這門課 老師說要我們自己寫程式時做DFT這個動作 我寫出來 然後丟到MATLAB裡面跑 跑了快一個小時都還沒有出現結果我就把MATLAB關了 我不知道是還需要時間還是我程式有錯 不知道是不是我沒有先做乘上(-1)^(X+Y)移到中心點的關係 作法是: 1.將一張圖用DFT轉成頻率domain 2.在螢幕上印出頻譜 3.做IDFT轉回空間domain 4.在螢幕上印出輸出的圖 SOURCE CODE如下: (拜託高手幫看 我卡好幾天了...謝謝) %讀取影像 f1=imread('lena.bmp'); F1=imread('lena.bmp'); %初始化 N=256; M=256*256; temp1=0; temp2=0; f=double(f1); F=double(F1); for (x=1:N) for (y=1:N) F(x,y)=0; end end %做DFT轉換 for (u=1:N) for (v=1:N) for (x=1:N) for (y=1:N) temp1 = temp1 + f(x,y) * exp(-2 * pi * i * (u-1) * (x-1) / M ); end end F(u,v)=temp1/M; end end %印出spectrum imshow(uint8( F )); %作IDFT轉換 for (x=1:N) for (y=1:N) for (u=1:N) for (v=1:N) temp2 = temp + F(u,v) * exp(2 * pi * i * (u-1) * (x-1) / M ); end end f(x,y)=temp2; end end %印出輸出影像 imshow(uint8( f )); 拜託高手們一下 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.71.3.123

05/07 07:04, , 1F
o(4)? 或許你需要更多等待的時間,多點耐性吧!
05/07 07:04, 1F

05/07 10:31, , 2F
"Matrix"你想用Matlab跑影像處理改寫成Matrix運算是基礎
05/07 10:31, 2F

05/07 10:33, , 3F
ex: F=zeros(N N); 就省掉兩個for loops 了
05/07 10:33, 3F
文章代碼(AID): #1A0SbyFZ (MATLAB)
文章代碼(AID): #1A0SbyFZ (MATLAB)