机器视觉入门之路(十三,图像旋转原理,c++)

本文深入解析了二维坐标系中,点绕原点旋转的数学原理。通过高中几何知识回顾,详细推导了旋转前后点坐标的关系,利用矩阵运算简化计算过程,并拓展到直线旋转的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如图,我们的电脑屏幕坐标系:

已知(x0,y0),以原点O(0,0)旋转\Theta,长度r不变,求旋转后的点(x,y)

x0=r*cos(a);

y0=r*sin(a);

x=r*cos(a-\Theta)=r*cos(a)*cos(\Theta)+r*sin(\Theta)*sin(a)=x0*cos(\Theta​​​​​​​)+y0*sin(\Theta​​​​​​​);

y=r*sin(a-\Theta​​​​​​​)=r*sina(a)*cos(\Theta​​​​​​​)-r*cos(a)*sin(\Theta​​​​​​​)=-x0*sin(\Theta​​​​​​​)+y0*cos(\Theta​​​​​​​);

用行列式表达:\begin{bmatrix} x\\ y \end{bmatrix}=\begin{bmatrix} cos\Theta, sin\Theta \\ -sin\Theta, cos\Theta \end{bmatrix}\begin{bmatrix} x0\\ y0 \end{bmatrix}

扩展行列式表达 :\begin{bmatrix} x\\ y\\ 1 \end{bmatrix}=\begin{bmatrix} cos\Theta ,sin\Theta ,0\\ -sin\Theta ,cos\Theta ,0\\0,0, 1 \end{bmatrix}\begin{bmatrix} x0\\ y0\\ 1 \end{bmatrix}

高中知识,回顾一下,搞定。

我们看到一个细节,旋转只和\Theta相关,(x0,y0)就到了(x,y),那么下面直线MG,围绕原点O旋转\Theta,会去哪里?

因为只和\Theta相关,所以,假定M是(x0,y0),M‘是(x,y);那么G已经知道,G’如何求呢?

即G’=\begin{bmatrix} cos\Theta, sin\Theta \\ -sin\Theta, cos\Theta \end{bmatrix}*G,ok,MG直线旋转\Theta​​​​​​​,搞定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值