影像縮放
影像縮放有下列三種方法可以實作:
1) Nearest Neighbor Interpolation
2) Bilinear Interpolation
3) Bicubic Interpolation
Nearest Neighbor Interpolation
介紹:
Bilinear Interpolation
介紹:
Bilinear Interpolation會利用最近相鄰的四個點依相鄰的(比例)程度來填入。如下圖,新(右)圖的P'點因為最相鄰原(左)圖的P(1,1),P(1,2),P(2,1),P(2,2)四點,所以就將此四點的值依比例填入P'。
公式:P'(x,y)=(1-d)(1-d')P(1,1)+d(1-d')P(1,2)
+d'(1-d)P(2,1)+d*d'*P(2,2)
實作結果:
Bicubic Interpolation
影像旋轉
介紹:
圖片會以圖片的中心點為中心作旋轉,且背景會以黑色呈現。影像的旋轉主要會用到兩個三角函式。
sin(A+B) = sin(A)cos(B)+sin(B)cos(A)
cos(A+B) = cos(A)cos(B)-sin(A)sin(B)
綜合其應用,若座標(x, y)逆時針旋轉A度後座標變成
(xcos(A)-ysin(A), xsin(A)+ycos(A))
比較
Nearest Neighbor Interpolation
- 優點:運算速度相較之下較快
- 缺點:圖形會出現鋸齒狀
Bilinear Interpolation
- 優點:圖形會較平順
- 缺點:運算速度相較之下較慢
Bicubic Interpolation
- 優點:圖形又比Bilinear Interpolation更清晰
- 缺點:運算速度最慢
總結
如上圖的比較圖,若使用Nearest Neighbor是最簡單的發是而且運算的速度很快,不過就會產生鋸齒狀,若使用Bilinear Interpolation就會順很多,沒有鋸齒狀,而Bicubic Interpolation又更清晰,由上圖的眼睛白色的反光處最為清楚,但是計算的速度最慢。
計算時間:Nearest Neighbor < Bilinear < Bicubic
沒有留言:
張貼留言