图像旋转是指图像按照某一点转动一定的角度的过程,旋转过程中图像的原始大小并不改变。
图像旋转后图像的对称轴以及中心坐标原点都有可能会发生变化,因此需要对图像旋转中得坐标进行相应的变换。图像的坐标系是由X轴水平向右,Y轴竖直向下构成。
假设图像旋转中心的坐标为(Cx,Cy),原始图像数据的坐标为(x,y),旋转后目标图像的坐标为(x1,y1)。变换后的坐标形式是X轴正方向水平向右,y轴正方向竖直向上。在进行旋转之前要把坐标原点由图像的左上方变换到旋转中心。旋转坐标的矩阵形式为:
在极坐标情况下,顺时针旋转θ,根据坐标变换公式可得:
矩阵表达形式为:
在旋转完成之后,需要将旋转中心的坐标变换到以左上角为原点的坐标系中。在变换之前要找到变换后图像的极值点,这些极值点用来确定图像的尺寸大小。找到了这些极值点也需要用来完成旋转中心的坐标变换。假设这些极值点中最上方的极值点为Ymax,最下方的极值点为Ymin,水平方向最左边的极值点为Xmin,最右边的极值点为Xmax。则旋转中心变换到原坐标系中得坐标变换矩阵形式如下:
代码示例如下:
1 |
|
输入图像:
输出图像(旋转60°):