2014年3月13日 星期四

圖像縮放與旋轉(Image Scaling and Rotation)


 利用內插演算法,實作影像大小縮放調整。
    此次作業考慮以下三種內插演算法:
    (1)Nearest Neighbor Interpolation(鄰近取樣插值)
    (2)Bilinear Interpolation(雙線性插值)
    (3)Bicubic Interpolation(雙三次線性插值)
  
 撰寫程式,對影像進行旋轉。

(1)最鄰近點演算法(Nearest Neighbor) 
在最鄰近點演算法中,經縮放後的像素顏色,乃是參考其在原影像中最靠近的像素的顏色。

(2)雙線性插值演算法(Bilinear Interpolation) 
每個新影像中的像素為原影像中與其最臨近的四個像素(2×2),依其距離施以不同比重運算而得的結果,這種演算法可有效地消除鋸齒現象。 

(3)雙三次插值演算法(Bicubic Interpolation) 
雙三次插值演算法是雙線性插值演算法的改進演算法,此演算法中的每個像素都是原圖 16 個像素(4×4)運算的結果。這種演算法是一種很常見的演算法,普遍用在影像編輯軟體、印表機列印和數位相機上。

成果展示

原圖


最鄰近點插值演算法是最簡單也是最快的一種縮放演算法,因為缺少的像素
透過直接使用最靠近的原有像素來生成,但是這樣做的缺點則為容易產生明顯的

鋸齒狀(見下圖)。(此為放大2倍後的結果)


雙線性插值演算法的優點為經放大後的影像較不容易產生鋸齒狀,但卻有放
大後影像較模糊,且運算速度較慢的缺點(見下圖)。(此為放大2倍後的結果)

雙三次插值演算法的優點為:經放大後的影像暨不容易產生最鄰近點插值法
的鋸齒狀,模糊的程度也比雙線性插值法來的輕微,但運算速度則比前兩種方法
來的慢(見下圖)。(此為放大2倍後的結果)



下圖為旋轉40度的結果