插值法的公式怎么計算 插值法公式及計算步驟( 二 )


仔細觀察上面的公式不難發現,其實PPP點的值等于周圍四個點與P點所構成的四個對角矩形面積的加權平均

雙三次插值(Bicubic interpolation)雙三次插值是一種更加復雜的插值算法,是二維空間中最常用的插值算法,相對雙線性插值的圖像邊緣更加平滑,函數f在點(x,y)的值可以通過矩形網格中最近的十六個采樣點的加權平均得到,這里需要使用兩個多項式插值三次函數,每個方向使用一個 。
雙三次插值通過以下公式進行計算:
計算系數aij的過程依賴于插值數據的特性 。如果已知插值函數的導數,常用的方法就是使用四個頂點的高度以及每個頂點的三個導數 。一階導數h′x與h′y表示x與y方向的表面斜率,二階相互導數h”xy表示同時在x與y方向的斜率 。這些值可以通過分別對x與y向量取微分得到 。對于網格單元的每個頂點,將局部坐標(0,0)、(1,0)、(0,1)、(1,1)代入這些方程,再解這16個方程 。
看了上面這段話之后,貌似還是不太好理解,接下來我們看一個例子,雙三次插值常用的BiCubic函數如下圖
上式中的a取-0.5即可,函數圖像如下
對待插值的像素點(x,y)(x,y可為浮點數),取其附近的4×4領域點(xi,yi)其中i,j=0,1,2,3 。按下面的公式進行插值計算:
例如,我們需要求解P點值,在P點周圍有16個點
首先,我們要求出當前像素與PPP點的距離,比如a00距離P(x+u,y+v)的距離為(1+u,1+v),那么我們可以得到a00對應的系數為(W(1+u),W(1+v)),所以a11的系數為(W(u),W(v)),a22的系數為(W(1?u),W(1?v)),a33的系數為W(2?u),W(2?v),同理可以得到剩下點的系數,再根據上面的函數就可以求出P點的值 。
關于雙三次插值函數更加詳細介紹可以參考:論文
http:///download/publications/keysbicubic.pdf
區域插值(Area interpolation)區域插值算法主要分兩種情況,縮小圖像和放大圖像的工作原理并不相同 。
縮小圖像
如果圖像縮小的比例是整數倍,在調用INTER_LINEAR_EXACT插值算法時,如果圖像的寬和高的縮小比例都是2,而且圖像的通道數不是2,實際上會調用INTER_AREA 。在調用INTER_LINEAR時,如果圖像的寬和高的縮小比例都是2,實際上是會調用INTER_AREA 。
INTER_AREA實際上是個box filter,類似于均值濾波器 。
放大圖像
如果放大圖像的比例是整數倍,與最近鄰插值相似 。如果放大的比例不是整數倍,則會采用線性插值 。
Lanczos插值Lanczos插值屬于一種模板算法,需要通過計算模板中的權重信息來計算x對應的值 。對于一維信息,假如我們輸入的點集為X,那么,Lanczos對應有個窗口模板Window,窗口中每個位置的權重計算如下:

通常a取2或者3,當a=2時,該算法適應于圖像縮小的插值 。當a=3時,算法適用于圖像放大的插值 。根據計算出來的權重信息,然后再根據xxx即可求出對應的加權平均:
插值算法耗時比較對于不同的插值算法,在縮放因子不同的時候,耗時會有所區別,具體對照如下表所示
總結【插值法的公式怎么計算 插值法公式及計算步驟】如果要縮小圖像,推薦使用INTER_AREA插值效果最好,如果要放大圖像,INTER_CUBIC效果最好,但是速度較慢,可以考慮使用INTER_LINEAR速度較快,效果也還不錯 。

推薦閱讀