精華區beta MATLAB 關於我們 聯絡資訊
[G,map] = imread('jet.bmp'); [LL1,LH1,HL1,HH1]=dwt2(G,'haar'); % 三階小波轉換 [LL2,LH2,HL2,HH2]=dwt2(LL1,'haar'); [LL3,LH3,HL3,HH3]=dwt2(LL2,'haar'); rLL2=idwt2(LL3,LH3,HL3,HH3,'haar'); % 反小波轉換 rLL1=idwt2(rLL2,LH2,HL2,HH2,'haar'); rG=idwt2(rLL1,LH1,HL1,HH1,'haar'); imwrite(rG,map,'WM_jet.bmp'); % 另存一個檔 T = imread('WM_jet.bmp'); % 再將新檔的pixel讀出 神奇的事情來了..... 做完正反向小波轉換後,產生rG 將這個rG存檔後,再用imread讀到 T rG跟T居然會差1,有的差1.5 如果不做小波轉換的步驟,如下: [G,map] = imread('jet.bmp'); imwrite(G,map,'WM_jet.bmp'); T = imread('WM_jet.bmp'); 就不會有這種情形~~ 為什麼啊~~~~~~~~~~~~為什麼經過小波轉換步驟,只是存個檔值就會變 我測rG(1,1)的值是76.00000000000020 存了檔再讀出來T(1,1)就變成75了 = = 請問各位高手這是什麼情況啊~~~~~~~~~~~~~~ 快被搞瘋了..............是matlab內的bug嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.70.198.240
wolako:沒圖沒真相 09/21 00:47
blueX:看圖看不出來吧...pixel才差1而已耶~隨便拿張灰階圖來測吧 09/22 16:22
blueX:我用512*512的lena圖來測結果也是降~~這到底是怎麼回事啊 09/22 16:24