理解影象處理中的 雙線性內插法(圖文說明)
此文章轉載自網路,同時自己理解修改註釋一番,水平有限,如有錯漏請提出指正
tag: 雙線性插值,雙線性內插法,影象插值法
1 . 為什麼要用影象的插值?
在影象的放大和縮小的過程中,需要計算新影象畫素點在原圖的位置,如果計算的位置不是整數,就需要用到影象的內插,我們需要尋找在原圖中最近得畫素點賦值給新的畫素點,這種方法很簡單是最近鄰插法,這種方法好理解、簡單,但是不實用,會產生是真現象,產生棋盤格效應,更實用的方法就是雙線性內插,作為最基本的影象處理演算法之一,這些演算法在Photoshop中都可以設定。
要用此法,線要理解,才能用得得心應手。
2. 從最基本的基礎立即開始:一維線型插值法
如下圖所示,我們最瞭解的直線之間從插值示意圖。
我們已經知道(x0,y0)與(x1, y1)的值,並且已知 x 的值,要求 y 的值。根據初中的知識:
就是直線上的點,正切值,是一樣的,下面進行變換,讓x軸上的比例為一個a:
再變換,我們要求出y:
3. 二維線型插值法的理解(圖文說明)
雙線性插值是做了二次一維的線性插值,我們用四個最近鄰估計給定的灰度。我們新影象的畫素點對應輸入影象的(u0 , v0)(u0,v0不是整數),則其必定落在原始影象四個畫素點中間。四個畫素點分別是(u’ , v’ )、(u’ , v’ +1)、(u’+1 , v’ )、(u’ +1, v’+1 )。如下圖1所示:
(圖中,u ,v 分別是平面上的位置座標, g軸是色深,也就是可以想象為顏色值的座標)
圖一
如圖1所示:在紅色平面內,在紅色平面內,只有u’ 是變數,v’ 是常值,連線 g(u’ , v’ )、 g(u’+1 , v’ ),相當於做一次一維線性插值,求出 g(u0, v’ )的值。同理,如圖3中,在藍色的平面內我們可以再做一次一維線性插值,求出g(u0, v’ +1)的值。同理如圖4,在黑色的平面內,我們可以求出(u0, v0)對應的值g(u0, v0)的值。(雙線性插值就是分別在 u、v方向上做線性插值)數學推導過程如下:(圖中用線圈起來的就是代表每一個公式)
圖二
圖三
圖四
最後的推導公式: