圖像插值算法

插值的定義:

設函數y=f(x)在區間[a,b]上有定義,且已知在點a≤x0<x1<…<xn≤b上的值爲y0,y1,…,yn,若存在簡單函數P(x)使得

P(xi)=yi (i=0,1,…,n)

成立,就稱P(x)爲f(x)的插值函數, x0,x1,…,xn稱爲插值節點,包含插值節點的區間[a,b]稱爲插值區間,求插值函數P(x)的方法就是插值法。

有時,在圖像的幾何變換中,比如縮放和旋轉,輸出圖像上的像素點座標有可能對應於原圖像上幾個像素點之間的位置,這個時候就需要通過灰度插值處理來計算出該輸出點的灰度值。

常用的圖像插值算法可以分爲最近鄰插值,雙線性插值和立方卷積插值。

1.最近鄰插值

最簡單的插值方法是最近鄰插值,即選擇離它所映射到的位置最近的輸入像素的灰度值爲插值結果。若幾何變換後輸出圖像上座標爲(x,y)的像素點在原圖像上的對應值座標爲

(u,v),則近鄰插值公式爲:

捕獲

[······]表示求整

與其它兩種插值算法相比,最近插值具有簡單快速的特點,但是對於鄰近像素點的灰度值有較改變,細微結構是粗糙的。

2.雙線性插值

設g(x',y')上像素座標爲(x',y')的點對應於原圖像上的座標爲(u,v),如下圖所示

捕獲

將f(x,y)周圍的四點存入二維數組a[2][2],並令u=0,v=1,簡化後可以得到雙線性插值公式:

1:x方向上的線性插值

    R1 = (1-x)*array[0][0] + x*array[1][0];
    R2 = (1-x)*array[0][1] + x*array[1][1];

2:y方向上的線性插值

雙線性插值具有低通濾波器特質,使高頻信號受損,圖像輪廓模糊,但同時邊緣處的過度也比較自然。缺點是運算速度比最近鄰插值要慢。

3.三次卷積插值(又稱立方卷積插值)

三次卷積法能夠克服以上兩種算法的不足,計算精度高,但計算亮大,他考慮一個浮點座標(i+u,j+v)周圍的16個鄰點,目的像素值f(i+u,j+v)可由如下插值公式得到:

捕獲
S(x)是對 Sin(x*Pi)/x 的逼近(Pi是圓周率——π)

最鄰近插值(近鄰取樣法)、雙線性內插值、三次卷積法 等插值算法對於旋轉變換、錯切變換、一般線性變換 和 非線性變換 都適用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章