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