則能夠利用以下公式進行插值計算。其中a和(1-a)爲x距離x1和x2的距離佔(x2-x1)的比例。
y = a*y1 + (1-a)*y2函數
如今假設im(m, n)爲原圖像中第m行第n列的像素,其周圍的幾個像素爲im(m+1, n)、im(m, n+1)、im(m+1, n+1)。3d
若把這幾個像素的中心連線能夠獲得這樣一個正方形。cdn
在圖像變換的過程當中,變換後的圖片中的像素點的值可能須要原圖的像素進行插值求出像素的值,若是變化後的圖象所需的值對應在原圖中四個像素圍成的正方形中間,則以下圖所示,P點爲須要求出值的像素點,則經過四個已知的像素值能夠插值求出P點的像素值。 其中,a、(1-a)、b、(1-b)爲P點距離邊緣的距離。總的思路就是分兩次作插值計算,先用插值算出P1和P2點的像素值在用這兩點求出P點的像素值。blog
求出P1和P2的公式以下
P1 = b*im(m, n) + (1-b)*im(m+1, n)圖片
P2 = b*im(m, n+1) + (1-b)im(m+1, n+1)
求出P的公式以下
P = aP1 + (1-a)*P2it
= a*[bim(m, n) + (1-b)im(m+1, n)] + (1-a)[bim(m, n+1) + (1-b)*im(m+1, n+1)]io
= abim(m, n) + a*(1-b)im(m+1,n) + (1-a)bim(m, n+1) + (1-a)(1-b)*im(m+1, n+1)class
這是最簡單的一種插值方法,不須要計算,在待求象素的四鄰象素中,將距離待求象素最近的鄰象素灰度賦給待求象素。設i+u, j+v(i, j爲正整數, u, v爲大於零小於1的小數,下同)爲待求象素座標,則待求象素灰度的值 f(i+u, j+v) 以下圖所示:lazyload
若是(i+u, j+v)落在A區,即u<0.5, v<0.5,則將左上角象素的灰度值賦給待求象素,同理,落在B區則賦予右上角的象素灰度值,落在C區則賦予左下角象素的灰度值,落在D區則賦予右下角象素的灰度值。最鄰近元法計算量較小,但可能會形成插值生成的圖像灰度上的不連續,在灰度變化的地方可能出現明顯的鋸齒狀。gc