2014年3月19日 星期三

Image Scaling and Rotation

影像的縮放與旋轉,重點就是操作影像的位置。而我們要實作的演算法,總共有三個:NN、Bilinear、Bicubic。

Nearest Neighbor Interpolation

(圖片取自 Tech-Algorithm

如上圖所示,這個演算法縮放圖片的方法,就是找其最近的一個鄰居,根據鄰居的顏色,來填補空缺的格子。NN追求的是簡單與快速,所以在圖片處理上相較含糊,如果放大的倍率很大的話,很容易看到鋸齒狀的結果。以下是 lena 放大三倍後的結果。

(3x lena.bmp with NN)

Bilinear Interpolation

(圖片取自 Tech-Algorithm

Bilinear與NN不同的地方是,找其最近的四個鄰居,並且根據內插法(Interpolation)去決定顏色。因此,這個縮放出來會比 NN 還要平滑,鋸齒狀的結果會比較少見,但當然只是相對少見。

(3x lena.bmp with Bilinear)

Bicubic Interpolation

Bicubic 使用鄰近十六個鄰居的像素來決定本身的值,所以相對前面兩個會比較清晰,但花費時間也久了一點。而當你將他放大看時,你能發現圖片的銳利度是比較高的。

(3x lena.bmp with Bicubic)

Image Rotation using Nearest Neighbor

這個部分,其實也可以使用 Bilinear 實作,不過比較複雜,所以就選擇了 NN。

(Rotated lena.bmp with NN)

Conclusion

在這次學習之後,讓我對於影像處理有初步的了解。個人覺得三個演算法中,就屬 Bilinear 最平衡,所需時間小於 Bicubic ,且品質大於 Nearest Neighbor。

沒有留言:

張貼留言