优秀的编程知识分享平台

网站首页 > 技术文章 正文

对图像进行刚体变换:围绕任意点旋转的公式推导

nanyue 2024-08-03 17:59:32 技术文章 5 ℃

有图像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.

Tags:

最近发表
标签列表