1. 程式人生 > 其它 >影象處理—影象的旋轉

影象處理—影象的旋轉

此處不敘述公式的推導,只是以初學者的角度理順思路與總結重要知識點。

影象的旋轉公式為

$$
\left\{
\begin{array}{c}
i^{'}=icosk-jsink\\
j^{'}=isink+jcosk
\end{array}
\right.
$$

其中(i,j)是原影象F(i,j)中的畫素座標點,(i',j')是原影象旋轉變換後的座標點。

由影象的旋轉座標公式可以看出,計算後得出的數值可能是小數,但是影象的座標值只能是正整數,因此還需要對旋轉公式計算所得到的的值進行取整

其次,根據取整後所得到的座標值進行畫布擴大

如下圖,根據畫素的分佈,每個畫素的周圍只有八個畫素點,他們之間的最小間隔角度為45°,

o

因此如果旋轉角度任意設定,則隨後旋轉影象時在畫素級別上一定會存在角度偏差。另外,在畫素點取整之後會出現歸併現象即有可能經過旋轉導致原影象的多個畫素點旋轉到新影象的同一個畫素位置,這樣就會破壞原有影象的相鄰關係。

其次,這樣同時會導致新影象中的一些畫素點無對應的畫素可填,出現空穴

對於空穴問題的解決,我們一般採用插值處理,一般常用的插值方法有,鄰近插值、雙線性插值、三次卷積插值。

對於影象的旋轉問題,除了上述的直角座標變換方式,還可以將其轉換為極座標變換的方式。具體操作和直角座標變換沒有差別,只是將其轉換為極座標。