有图像img0 需要围绕任意点(rx,ry)旋转成为img1.
旋转矩阵M为:
图1 围绕任意点旋转的变换矩阵
注意:
(x0,y0)为img0上的任意像素的坐标
(x1,y1)为img1上的任意像素的坐标
为什么旋转矩阵M要这样写,我们详细推导一下:
图2 问题题干整理
这里需要先了解仿射变换的基本操作方式,
回顾一下平移变换如下:
图3 平移变换
注意:
(x0,y0)为img0上的任意像素的坐标
(x1,y1)为img1上的任意像素的坐标
围绕原点围绕0)的旋转变换如下:
图4 基本旋转变换
这里我们将围绕原点旋转为基本旋转变换。
其实我们可以利用平移变换和围绕原点(0,0)的旋转变换,来完成围绕任意点(rx,ry)的旋转变换,方法如下:
图5 先平移再基本旋转再平移即可
这三步的详细执行过程如下:
图6 详细执行过程
我们看到,每一步其实都是一个矩阵左乘的操作,所以我们可以把这三步的矩阵左乘合起来:
图7 将三步的矩阵左乘写为一个矩阵
所以,对图片img0绕任意点(rx,ry)旋转的变换矩阵M可以总结为:
图8 绕任意点旋转的变换矩阵M
注意:我们图1中写的是逆时针旋转-theta,为了表述方便,我们令alpha = - theta,将负号去除。这样我们就总结出了绕任意点(rx,ry)顺时针旋转alpha的旋转矩阵M的公式,如图8.
,版权声明:xxxxxxxxx;
工作时间:8:00-18:00
客服电话
电子邮件
扫码二维码
获取最新动态