利用內插演算法,實作影像大小縮放調整。
此次作業考慮以下三種內插演算法:
(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度的結果。