[問題] bicubic interpolation

看板C_and_CPP (C/C++)作者 (嘿嘿嘿)時間14年前 (2011/08/09 10:51), 編輯推噓6(6017)
留言23則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) vs2008 問題(Question): 我想將一個灰階的BMP透過bicubic來實現image放大的功能 參考的是http://tinyurl.com/3ev3fpq 這裡的內容 但是我的結果經過計算過後 會有某幾個pixel偏離實際影像的灰階值太多 也就是看起來會有幾個點是白色的很突兀 附上我的code:http://pastie.org/2342648 不知道是演算法本身的問題還是implement後發生的問題 不知道有沒有神手大大可以幫忙指導一下 餵入的資料(Input): lena灰階圖(256*256) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.20.246

08/09 11:11, , 1F
來個前後比對圖, 局部就可以了.
08/09 11:11, 1F

08/09 12:59, , 2F
08/09 12:59, 2F

08/09 12:59, , 3F
圈起來的是雜訊
08/09 12:59, 3F

08/09 13:09, , 4F
你沒檢查算出來的結果是否落在0-255之間吧
08/09 13:09, 4F

08/09 13:25, , 5F
回樓上 那些雜訊不是超過255 而是跟旁邊比看起來是白色說
08/09 13:25, 5F

08/09 13:56, , 6F
如果你算出來的值小於零,寫到圖上會發生什麼事?
08/09 13:56, 6F

08/09 15:37, , 7F
運算過後的結果應該是168~170這三行吧?
08/09 15:37, 7F

08/09 15:40, , 8F
可以在171行加一個 if(arr[1]~arr[3]其中有值超過
08/09 15:40, 8F

08/09 15:40, , 9F
[0,255] 的範圍, 就印出什麼訊息.
08/09 15:40, 9F

08/10 16:33, , 10F
其實我是想問說這個問題是bicubic演算法會產生的問題
08/10 16:33, 10F

08/10 16:35, , 11F
還是我implement過程出了錯誤,譬如:誤解參數的問題
08/10 16:35, 11F

08/10 16:37, , 12F
感覺如果去彌補這樣的錯誤是否就代表bicubic有瑕疵
08/10 16:37, 12F

08/10 16:38, , 13F
我有想說去看opencv的bicubic source code怎麼實作
08/10 16:38, 13F

08/10 16:39, , 14F
但我找不到opencv的source code 冏
08/10 16:39, 14F

08/10 17:25, , 15F
應該解釋成,當你用[0,255]來表示一個pixel時
08/10 17:25, 15F

08/10 17:26, , 16F
直接套用bicubic會有一些實務上的問題
08/10 17:26, 16F

08/10 17:27, , 17F
這時你應該要思考,使用bicubic的目的是什麼
08/10 17:27, 17F

08/10 17:27, , 18F
你的目標應該是平滑地放大圖片
08/10 17:27, 18F

08/10 17:28, , 19F
所以當bicubic的結果超出pixel表達範圍時
08/10 17:28, 19F

08/10 17:28, , 20F
對超出範圍的pixel處理是正確的
08/10 17:28, 20F

08/10 20:00, , 21F
做任何運算, 都要把值域範圍定義清楚.
08/10 20:00, 21F

08/10 20:01, , 22F
bicubic 是沒有假設前提的運算.
08/10 20:01, 22F

08/11 10:01, , 23F
了解 感謝各位^^
08/11 10:01, 23F
文章代碼(AID): #1EGA2NWd (C_and_CPP)
文章代碼(AID): #1EGA2NWd (C_and_CPP)