1. 程式人生 > >線性內插和雙線性內插

線性內插和雙線性內插

一、線性內插           

             這裡寫圖片描述

假設我們已知座標(x0, y0)與(x1, y1),要得到[x0, x1]區間內某一位置在直線上的y值。

根據圖中所示, 假設AB上有一點(x, y), 可作出兩個相似三角形,我們得到 :

                                                  {\frac{y-y_{0}}{y_{1}-y_{0}} } = {\frac{x-x_{0}}{x_{1}-x_{0}} }

則:                                        y = {\frac{x_{1} - x}{x_{1}-x_{0}}} y_{0} + {\frac{x-x_{0}}{x_{1}-x_{0}} }y_{1}

這種y求解的方法叫做-----線性外插。   已知y求x的過程與以上過程相同,只是x與y要進行交換。

二、雙線性插值

雙線性插值,在數學上,雙線性插值是有兩個變數的插值函式的線性插值擴充套件,其核心思想是在兩個方向分別進行一次線性插值,見下圖

                                   這裡寫圖片描述

 假如我們想得到未知函式 f 在點P = (x, y)的值,假設我們已知函式 f 在 Q11 = (x1, y1)、Q12 = (x1, y2), Q21 = (x2, y1)以及Q22 = (x2, y2)四個點的值。常見的情況,f 就是一個畫素點的畫素值。首先在x方向進行線性插值,得到

這裡寫圖片描述

這裡寫圖片描述

然後在y方向進行線性插值,得到

                                    這裡寫圖片描述

綜合起來就是雙線性插值最後的結果:

                            這裡寫圖片描述

                  這裡寫圖片描述

由於影象雙線性插值只會用相鄰的4個點,因此上述公式的分母都是1。 opencv中原始碼用了一些優化手段,比如用整數計算代替float,以及源影象和目標影象幾何中心的對齊。