图像的旋转
1. 基本概念
1.1 基本公式
从图中我们可以得到如下关系:
r = (X – X0)/cos(α) = (Y0-Y)/sin(α)
Xn = r*cos(θ + α) + X0
=r*cos(θ)*cos(α) – r*sin(θ)*sin(α) + X0
=((X – X0)/cos(α)) * cos(θ)*cos(α) – ((Y0-Y)/sin(α)) * sin(θ)*sin(α) + X0
= (X – X0) * cos(θ) + (Y – Y0) * sin(θ)+ X0
Yn = -r*sin(θ + α) + Y0
=-r*sin(θ) * cos(α) – r*cos(θ)*sin(α) + Y0
= -(X-X0)sin(θ) + (Y-Y0)*cos(θ) + Y0
整理得到公式1:
Xn = (X – X0) * cos(θ) + (Y – Y0) * sin(θ) + X0
Yn = -(X-X0)*sin(θ) + (Y-Y0)*cos(θ) + Y0
反过来可得公式2:
X = (Xn – X0) * cos(θ) - (Yn – Y0) * sin(θ) + X0
Y = (Xn-X0) * sin(θ) + (Yn-Y0) * cos(θ) + Y0
由此得到旋转前后像素的坐标关系。可通过公式1来计算任意一个旋转前的像素在旋转后的图像中的坐标位置;利用公式2计算任意一个旋转后的像素在旋转前的图像中的坐标位置。
其中:θ,逆时针方向旋转角度
(X0,Y0)旋转中心
(X,Y)为像素在旋转前的坐标
(Xn,Yn)