日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图像常用的插值算法:最近邻插值、双线性插值和双三次插值算法

發布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像常用的插值算法:最近邻插值、双线性插值和双三次插值算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

圖像常用的插值算法

  • 最近鄰插值算法
  • 雙線性插值算法
  • 雙三次插值(bicubic)算法
  • 三種插值算法的優缺點

插值算法是圖像縮放中的一項基本且重要的算法;在圖像縮放中,輸出圖像像素點坐標可能對應輸入圖像上幾個像素點之間的位置,這個時候就需要通過灰度插值處理來計算出該輸出點的灰度值。圖像插值是圖像超分辨率的重要環節,不同的插值算法有不同的進度,插值算法的好壞也直接影像著圖像的失真程度。常用的插值算法有以下三種:最近鄰插值算法、雙線性插值算法以及雙三次插值算法。

最近鄰插值算法

最近鄰插值算法是最簡單的插值算法,同時也叫零階插值法。即選擇里它所映射位置最近的輸入像素的灰度值為結果。對二維圖像,是去待采樣點周圍4個相鄰像素點中距離最近的1個點的灰度值作為待采樣點的像素值。

最近鄰插值算法 如上圖所示,當需要求的A的坐標落在藍色框內,會對其坐標(x,y)采用四舍五入的方式,將A點坐標映射到P1~P4上的某一個點,并以該點的灰度值作為采樣點A的灰度值。

雙線性插值算法

雙線性插值素算法又叫一階插值法,它對經過三次插值才能得到最終結果,是對最鄰插值算法的一種改進,先對水平x方向進行一階線性插值(需要兩次一階線性插值),然后在在垂直y方向進行一階線性插值(只需要一次一階線性插值)。

雙線性插值算法

假設上圖中,Q11,Q12,Q21,Q22Q_{11},Q_{12},Q_{21},Q_{22}Q11?,Q12?,Q21?,Q22?四個紅色點的坐標點信息及灰度值是已知,分別為Q11=(x1,y1),Q12=(x1,y2),Q21=(x2,y1),Q22=(x2,y2)Q_{11}=(x_1,y_1),Q_{12}=(x_1,y_2),Q_{21}=(x_2,y_1),Q_{22}=(x_2,y_2)Q11?=(x1?,y1?),Q12?=(x1?,y2?),Q21?=(x2?,y1?),Q22?=(x2?,y2?),通過雙線性插值計算出P點的灰度值。
首先進行x方向的線性插值,得去R1,R2R_1,R_2R1?,R2?兩點的灰度值,然后再進行y方向的線性插值,最終獲取PPP點的灰度值。計算過程如下所示:
1. 計算x方向的線性插值
????f(R1)=x2?xx2?x1f(Q11)+x?x1x2?x1f(Q21)WhereR1=(x,y1)f(R1) = \frac{x_2 - x}{x_2-x_1}f(Q_{11}) + \frac{x - x_1}{x_2-x_1}f(Q_{21}) \quad Where \quad R_1 =(x,y_1)f(R1)=x2??x1?x2??x?f(Q11?)+x2??x1?x?x1??f(Q21?)WhereR1?=(x,y1?)

????f(R2)=x2?xx2?x1f(Q12)+x?x1x2?x1f(Q22)WhereR1=(x,y2)f(R2) = \frac{x_2 - x}{x_2-x_1}f(Q_{12}) + \frac{x - x_1}{x_2-x_1}f(Q_{22}) \quad Where \quad R_1 =(x,y_2)f(R2)=x2??x1?x2??x?f(Q12?)+x2??x1?x?x1??f(Q22?)WhereR1?=(x,y2?)

2.計算y方向的線性插值

????f(P)=y2?yy2?y1f(R1)+y?y1y2?y1f(R2)f(P)= \frac {y_2 - y}{y_2 - y_1}f(R1) + \frac{y - y_1}{y_2 - y_1}f(R2)f(P)=y2??y1?y2??y?f(R1)+y2??y1?y?y1??f(R2)

3.合并1和2兩步計算過程

????f(P)=(x2?x)(y2?y)(x2?x1)(y2?y1)f(Q11)+(x?x1)(y2?y)(x2?x1)((y2?y1))(f(Q21))+(x2?x)(y?y1)(x2?x1)(y2?y1)f(Q12)+(x?x1)(y?y1)(x2?x1)(y2?y1)f(Q22)f(P)=\frac{(x_2 - x)(y_2 - y)}{(x_2-x_1)(y_2 - y_1)}f(Q_{11}) + \frac{(x - x_1)(y_2 - y)}{(x_2-x_1)((y_2 - y_1))}(f(Q_{21})) + \frac{(x_2 - x)(y - y_1)}{(x_2-x_1)(y_2 - y_1)}f(Q_{12}) + \frac{(x - x_1)(y - y_1)}{(x_2-x_1)(y_2 - y_1)}f(Q_{22})f(P)=(x2??x1?)(y2??y1?)(x2??x)(y2??y)?f(Q11?)+(x2??x1?)((y2??y1?))(x?x1?)(y2??y)?(f(Q21?))+(x2??x1?)(y2??y1?)(x2??x)(y?y1?)?f(Q12?)+(x2??x1?)(y2??y1?)(x?x1?)(y?y1?)?f(Q22?)

雙三次插值(bicubic)算法

雙三次插值算法(Bicubic interpolation)又稱立方卷積插值算法,是對雙線性插值的改進,是一種比較復雜的插值方式,它不僅考慮到周圍4個像素點灰度值的影像,還考慮到它們灰度值變化率的影像。該算法需要利用待采樣附近16個像素點的灰度值作三次插值進行計算。

雙三次插值(bicubic)算法

? 如上圖所示,函數fff在點(x,y)(x,y)(x,y)的值可以通過矩形網絡中最近的十六個采樣點的甲醛平均得到的,在這里需要使用兩個多項式三次插值函數,每個方向使用一個,其函數形式如下:
f(x,y)={(a+2)∣x∣3?(a+3)∣x∣2+1for∣x∣<=1a∣x∣3?5a∣x∣2+8a∣x∣?4afor1<∣x∣<=20f(x,y) = \begin{cases} (a+2)|x|^3 - (a+3)|x|^2 + 1 \quad for \quad |x| <= 1 \\ a|x|^3 - 5a|x|^2 + 8a|x| -4a \quad for \quad 1 < |x| <= 2 \\ 0 \end{cases} f(x,y)=??????(a+2)x3?(a+3)x2+1forx<=1ax3?5ax2+8ax?4afor1<x<=20?
?說明

  • f(0)=1
  • f(x)=0(當x>2)
  • 當x超出范圍的時候,f(x)為0
  • 當a取不同值時,可以用來逼近不同的采樣條函數(常用值為-0.5,0.75)

a=?1a = -1a=?1時,如下:
f(x,y)={∣x∣3?2∣x∣2+1for∣x∣<=1?∣x∣3+5∣x∣2?8∣x∣+4for1<∣x∣<=20f(x,y) = \begin{cases} |x|^3 - 2|x|^2 + 1 \quad for \quad |x| <= 1 \\ -|x|^3 + 5|x|^2 - 8|x| + 4 \quad for \quad 1 < |x| <= 2 \\ 0 \end{cases} f(x,y)=??????x3?2x2+1forx<=1?x3+5x2?8x+4for1<x<=20?
此時,逼近的函數為y=sin(x?PI)(x?PI)y=\frac{sin(x*PI)}{(x*PI)}y=(x?PI)sin(x?PI)?,如下所示:

a=?0.5a=-0.5a=?0.5時,如下:
f(x,y)={1.5∣x∣3?2.5∣x∣2+1for∣x∣<=1?0.5∣x∣3+2.5∣x∣2?4∣x∣+2for1<∣x∣<=20f(x,y) = \begin{cases} 1.5|x|^3 - 2.5|x|^2 + 1 \quad for \quad |x| <= 1 \\ -0.5|x|^3 + 2.5|x|^2 - 4|x| + 2 \quad for \quad 1 < |x| <= 2 \\ 0 \end{cases} f(x,y)=??????1.5x3?2.5x2+1forx<=1?0.5x3+2.5x2?4x+2for1<x<=20?
此時對應為三次Hermite樣條,如下所示:

三種插值算法的優缺點

最近鄰插值算法

最近鄰插值算法雙線性插值算法雙三次插值算法
采樣方式用距離采樣點最近的像素值最為采樣點的灰度值用雙線性方式計算采樣點周圍的4個點,計算其灰度值根據采樣點的周圍16個像素值的雙線性關系以及像素變化率,計算出采樣點的灰度值
計算性能計算量最小、最快計算量比較大,速度居中計算量最大,性能最慢
效果未考慮周圍像素點的影像,采樣后的灰度值有明顯的不連續性,圖像質量損失較大,會產生馬賽克或者鋸齒現象克服最近鄰插值算法的灰度不連續性,未考慮各鄰點的灰度值的相互影響,故具有低通濾波的性質,從而導致縮放后的圖像的高頻分量收到損失、圖像邊緣在一定程度上變得較為模糊克服了前兩種方法的不足之處,能夠產生比雙線性茶壺中算法更為平滑的邊緣,計算精度很高,處理后的圖像質量損失最少,效果最佳的

:在進行圖像縮放時應根據實際情況對三種算法做出選擇,既要考慮時間方面的可行性,也要考慮對變化后圖像質量可用性,這樣才能達到較為理想結果。

總結

以上是生活随笔為你收集整理的图像常用的插值算法:最近邻插值、双线性插值和双三次插值算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。