關於部落格
親子旅遊記錄
加一點點的心得感想
  • 81294

    累積人氣

  • 25

    今日人氣

    0

    追蹤人氣

Qt: 影像處: Image Resizing by Bilinear Interpolation

 在上篇文章 http://blog.yam.com/chu24688/article/44769723
介紹影像縮放的基本原理
縮放的優劣大部份取決於 interpolation
 NNI 雖然簡單快速
但僅由最近的一個影像值來決定插補值
畫質較為粗糙
另一個常用的改良方法就是bilinear


a, b, c, d 四個點的灰度值分別為 f(a), f(b), f(c), f(d)
現在要來求 f(p)
假設 p 至 a 的水平距離為 alpha
假設 p 至 a 的垂直距離為 beta
由於abcd四點都是相鄰間距為1的格子點上
所以 p 至b 的水平距離為 (1-alpha)
所以 p 至c 的垂直距離為 (1-beta)
其它依此類推...

bilinear 的精神就是影響力與距離成反比
所以

f(p) = (1-alpha)*(1-beta)*f(a) +
alpha*(1-beta)*f(b)+
(1-alpha)*beta*f(c)+
alpha*beta*f(d)


程式跟NNI差不多, 主要程式如下


第43至46行: 計算a,b,c,d四點的x,y座標
第47至50行:在影像最右邊及最下邊的邊界點時, b,c d 的座標需修訂
第51至52行:計算alpha及beta值
第53至56行:計算a,b,c,d點的灰度值
第57行:計算bilinear插補, 最後為了四捨五入加上0.5


--- END ---
相簿設定
標籤設定
相簿狀態