有图像img0 需要围绕任意点(rx,ry)旋转成为img1.
旋转矩阵M为:
注意:
(x0,y0)为img0上的任意像素的坐标
(x1,y1)为img1上的任意像素的坐标
为什么旋转矩阵M要这样写,我们详细推导一下:
这里需要先了解仿射变换的基本操作方式,
回顾一下平移变换如下:
注意:
(x0,y0)为img0上的任意像素的坐标
(x1,y1)为img1上的任意像素的坐标
围绕原点围绕0)的旋转变换如下:
这里我们将围绕原点旋转为基本旋转变换。
其实我们可以利用平移变换和围绕原点(0,0)的旋转变换,来完成围绕任意点(rx,ry)的旋转变换,方法如下:
这三步的详细执行过程如下:
我们看到,每一步其实都是一个矩阵左乘的操作,所以我们可以把这三步的矩阵左乘合起来:
所以,对图片img0绕任意点(rx,ry)旋转的变换矩阵M可以总结为:
注意:我们图1中写的是逆时针旋转-theta,为了表述方便,我们令alpha = - theta,将负号去除。这样我们就总结出了绕任意点(rx,ry)顺时针旋转alpha的旋转矩阵M的公式,如图8.