單位矩形的四個角的z值分別是0、1、1、0.5,如果將坐標解釋為顏色,整個單位矩形上的雙線性插值結果如圖。
雙線性插值,又稱為雙線性內插。在數學上,雙線性插值是對線性插值在二維直角網格上的擴展,用於對雙變量函數(例如 x 和 y)進行插值。其核心思想是在兩個方向分別進行一次線性插值。
紅色的數據點與待插值得到的綠色點
假如我們想得到未知函數 f 在點
的值,假設我們已知函數 f 在
,
,
, 及
四個點的值。
首先在 x 方向進行線性插值,得到
![{\displaystyle {\begin{aligned}f(x,y_{1})&\approx {\frac {x_{2}-x}{x_{2}-x_{1}}}f(Q_{11})+{\frac {x-x_{1}}{x_{2}-x_{1}}}f(Q_{21}),\\f(x,y_{2})&\approx {\frac {x_{2}-x}{x_{2}-x_{1}}}f(Q_{12})+{\frac {x-x_{1}}{x_{2}-x_{1}}}f(Q_{22}).\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/64d921f5a4c3c8de6e6ff7503f187e8186037e3c)
然後在 y 方向進行線性插值,得到
![{\displaystyle {\begin{aligned}f(x,y)&\approx {\frac {y_{2}-y}{y_{2}-y_{1}}}f(x,y_{1})+{\frac {y-y_{1}}{y_{2}-y_{1}}}f(x,y_{2})\\&={\frac {y_{2}-y}{y_{2}-y_{1}}}\left({\frac {x_{2}-x}{x_{2}-x_{1}}}f(Q_{11})+{\frac {x-x_{1}}{x_{2}-x_{1}}}f(Q_{21})\right)+{\frac {y-y_{1}}{y_{2}-y_{1}}}\left({\frac {x_{2}-x}{x_{2}-x_{1}}}f(Q_{12})+{\frac {x-x_{1}}{x_{2}-x_{1}}}f(Q_{22})\right)\\&={\frac {1}{(x_{2}-x_{1})(y_{2}-y_{1})}}{\big (}f(Q_{11})(x_{2}-x)(y_{2}-y)+f(Q_{21})(x-x_{1})(y_{2}-y)+f(Q_{12})(x_{2}-x)(y-y_{1})+f(Q_{22})(x-x_{1})(y-y_{1}){\big )}\\&={\frac {1}{(x_{2}-x_{1})(y_{2}-y_{1})}}{\begin{bmatrix}x_{2}-x&x-x_{1}\end{bmatrix}}{\begin{bmatrix}f(Q_{11})&f(Q_{12})\\f(Q_{21})&f(Q_{22})\end{bmatrix}}{\begin{bmatrix}y_{2}-y\\y-y_{1}\end{bmatrix}}.\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e62d0c5e655663e9ddf4793005557c54b2e4f2d6)
注意此處如果先在 y 方向插值、再在 x 方向插值,其結果與按照上述順序雙線性插值的結果是一樣的。
如果選擇一個坐標系統使得 f 的四個已知點坐標分別為 (0, 0)、(0, 1)、(1, 0) 和 (1, 1),那麼插值公式就可以化簡為
![{\displaystyle f(x,y)\approx f(0,0)\,(1-x)(1-y)+f(1,0)\,x(1-y)+f(0,1)\,(1-x)y+f(1,1)xy.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d4fc1cee1726d12c6559ee8a6225c3a438e4b311)
或者用矩陣運算表示為
![{\displaystyle f(x,y)\approx {\begin{bmatrix}1-x&x\end{bmatrix}}{\begin{bmatrix}f(0,0)&f(0,1)\\f(1,0)&f(1,1)\end{bmatrix}}{\begin{bmatrix}1-y\\y\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c8d9e3401c3878d8bfba70c49a51c9c007e2647d)
顧名思義,雙線性插值的結果不是線性的,它是兩個線性函數的積。在單位正方形上,雙線性插值可以記作
![{\displaystyle f(x,y)=\sum _{i=0}^{1}\sum _{j=0}^{1}a_{ij}x^{i}y^{j}=a_{00}+a_{10}x+a_{01}y+a_{11}xy}](https://wikimedia.org/api/rest_v1/media/math/render/svg/597c62c5bd68fe4a3ec8e59a7eb92dca3f18b44a)
常數的數目(四)對應於給定的 f 的數據點數目
![{\displaystyle a_{00}=f(0,0),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c1a96aa841b6a34a0c31370971cc95f84cc71060)
![{\displaystyle a_{10}=f(1,0)-f(0,0),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/11e35267eefc1606fc07be57f46157fa596b8821)
![{\displaystyle a_{01}=f(0,1)-f(0,0),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fe8e7b88f03c48aa21b75b316276302b4e557a65)
![{\displaystyle a_{11}=f(1,1)+f(0,0)-{\big (}f(1,0)+f(0,1){\big )}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/acf3a2630f0c93179605326a7f0e5d7724f4ba4d)
雙線性插值的結果與插值的順序無關。首先進行 y 方向的插值,然後進行 x 方向的插值,所得到的結果是一樣的。
雙線性插值的一個顯然的三維空間延伸是三線性插值。
對灰度值進行雙線性插值
在計算機視覺及圖像處理領域,雙線性插值是一種基本的重採樣技術。
材質貼圖中,雙線性插值也叫雙線性過濾或者雙線性材質貼圖。圖像的雙線性插值放大算法中,目標圖像中新創造的象素值,是由源圖像位置在它附近的2*2區域4個鄰近象素的值通過加權平均計算得出的。雙線性內插值算法放大後的圖像質量較高,不會出現像素值不連續的的情況。然而此算法具有低通濾波器的性質,使高頻分量受損,所以可能會使圖像輪廓在一定程度上變得模糊。