图像放大的三种处理方法:最近邻插值,双线性插值 ,双三次插值算法
這里是引用https://www.cnblogs.com/amarr/p/10565188.html
最近鄰插值
這是最簡單的一種插值算法,當圖片放大時,缺少的像素通過直接使用與之最近原有顏色生成,也就是說照搬旁邊的像素這樣做結(jié)果產(chǎn)生了明顯可見的鋸齒。在待求象素的四鄰象素中,將距離待求象素最近的鄰灰度賦給待求象素。
如果 i+u, j+v(i落在 A區(qū),即 u<0.5,v<0.5,則將左上角象素的灰度值賦給待求象素,同理落在B區(qū)則賦予右上角的象素灰度值,落在C區(qū)則賦予左下角象素的灰度值,落在D區(qū)則賦予右下角象素的灰度值。
最近鄰插值法計算量較小,但可能會造成生的圖像灰度上的不連續(xù),在變化地方可能出現(xiàn)明顯鋸齒狀。
雙線性插值
在數(shù)學上,雙線性插值是有兩個變量的插值函數(shù)的線形插值擴展,其核心思想是在兩個方向分別進行一次線性插值。
我們已知紅色數(shù)據(jù)點的值,通過雙線性插值得到綠色數(shù)據(jù)點的值。
假如我們想得到未知函數(shù) f 在點 P=(x,y)P=\left( x, y\right)P=(x,y)$ 的值,假設我們已知函數(shù) f 在 Q11=(x1,y1),Q12=(x1,y2),Q21=(x2,y1),及Q22=(x2,y2)Q_{11} = \left( x_1, y_1 \right), Q_{12} = \left( x_1, y_2 \right), Q_{21} = \left( x_2, y_1 \right), 及 Q_{22} = \left( x_2, y_2 \right) Q11?=(x1?,y1?),Q12?=(x1?,y2?),Q21?=(x2?,y1?),及Q22?=(x2?,y2?)四個點的值。
首先在 x 方向進行線性插值,得到
然后在 y 方向進行線性插值,得到
這樣就得到所要的結(jié)果f(x,y)
這種插值方法的結(jié)果通常不是線性的,線性插值的結(jié)果與插值的順序無關。首先進行 y 方向的插值,然后進行 x 方向的插值,所得到的結(jié)果是一樣的。
雙線性內(nèi)插法的計算比最鄰近點法復雜,計算量較大但沒有灰度不連續(xù)的缺點,結(jié)果基本令人滿意。它具有低通濾波性質(zhì),使高頻分量受損,圖像輪廓可能會有一點模糊。
這里是引用
http://www.pianshen.com/article/9180110157/
雙三次插值算法
雙三次插值(英語:Bicubic interpolation)是二維空間中最常用的插值方法。在這種方法中,函數(shù)f在點 (x,y) 的值可以通過矩形網(wǎng)格中最近的十六個采樣點的加權平均得到,在這里需要使用兩個多項式插值三次函數(shù),每個方向使用一個。
假設源圖像A大小為mn,縮放K倍后的目標圖像B的大小為MN,即K=M/m。A的每一個像素點是已知的,B是未知的,我們想要求出目標圖像B中每一像素點(X,Y)的值,必須先找出像素(X,Y)在源圖像A中對應的像素(x,y),再根據(jù)源圖像A距離像素(x,y)最近的16個像素點作為計算目標圖像B(X,Y)處像素值的參數(shù),利用BiCubic基函數(shù)求出16個像素點的權重,圖B像素(x,y)的值就等于16個像素點的加權疊加。
根據(jù)比例關系x/X=m/M=1/K,我們可以得到B(X,Y)在A上的對應坐標為A(x,y)=A(X*(m/M),Y*(n/N))=A(X/K,Y/K)。如圖所示P點就是目標圖像B在(X,Y)處對應于源圖像A中的位置,P的坐標位置會出現(xiàn)小數(shù)部分,所以我們假設 P的坐標為P(x+u,y+v),其中x,y分別表示整數(shù)部分,u,v分別表示小數(shù)部分(藍點到a11方格中紅點的距離)。那么我們就可以得到如圖所示的最近16個像素的位置,在這里用a(i,j)(i,j=0,1,2,3)來表示,如上圖。
我們要做的就是求出BiCubic函數(shù)中的參數(shù)x,從而獲得上面所說的16個像素所對應的權重W(x)。BiCubic基函數(shù)是一維的,而像素是二維的,所以我們將像素點的行與列分開計算。BiCubic函數(shù)中的參數(shù)x表示該像素點到P點的距離,例如a00距離P(x+u,y+v)的距離為(1+u,1+v),因此a00的橫坐標權重i_0=W(1+u),縱坐標權重j_0=W(1+v),a00對B(X,Y)的貢獻值為:(a00像素值)* i_0* j_0。因此,a0X的橫坐標權重分別為W(1+u),W(u),W(1-u),W(2-u);ay0的縱坐標權重分別為W(1+v),W(v),W(1-v),W(2-v);B(X,Y)像素值為:
總結(jié)
以上是生活随笔為你收集整理的图像放大的三种处理方法:最近邻插值,双线性插值 ,双三次插值算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XiaoHu日志 6/17~6/19
- 下一篇: c语言ox是什么意思啊,ox什么意思