作者blueX (haha~~~)
看板MATLAB
標題[問題] 這算matlab內的bug嗎~~
時間Tue Sep 20 12:47:19 2005
[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