线性代数的运用之图像的旋转

图像旋转时运用的矩阵运算公式讲解以及代码的实现。
摘要由CSDN通过智能技术生成

提起线性代数,老师似乎只会告诉我们矩阵的应用范围很广,很重要。但是
一学期学下来,大家似乎也只会做题并不知道矩阵是如何运用的。一开始的我也是很疑惑,所学的知识似乎和实际的运用丝毫挂不上边。比如,以前听人说图像矩阵可以旋转。但是如何旋转,怎么旋转一直都不了解。虽然上网百度网上只是给出了图像旋转的公式,但却没有给出具体的解释。经过一番钻研还是了解了图像旋转的全过程,这里分享给大家,希望对大家有所帮助。

图像旋转的步骤

首先,大家要先了解图像旋转的步骤有哪些,只有知道自己每一步在做什么才不致于迷茫:
我们先读取一张图片,想象将图片放入一个坐标系中,图片的左上角与坐标原点重合,这时候的图片矩阵的索引与坐标系中的坐标(x,y)相吻合。再接着以图片对应的每一个(x,y)坐标进行一定角度的旋转得到(x1,y1),这时候的坐标x1,y1有的可能为负值,这样的负值在矩阵的索引中是不科学的。所以我们需要将负值变为正值,这相当于平移到正值的象限,平移后的坐标为(x2,y2)。最后将原图像矩阵根据索引(x,y)得到像素值,并将其赋值给相对应的矩阵索引(x2,y2)。这样就完成了。
图文并茂才能更好的理解,下面看图:
在这里插入图片描述

实现难点

下面我们就来说旋转矩阵是怎么来的以及它是什么样子的。
假设一个点为(x,y),旋转角度为 θ \theta θ。在直角坐标系中难以表示旋转,我们以极坐标系来表示: x 2 + y 2 = r 2 x = r cos ⁡ α y = r sin ⁡ α x^2+y^2 = r^2\qquad x = r\cos\alpha \qquad y = r\sin\alpha x2+y2=r2x=rcosαy=rsinα
则旋转后的坐标为: x = r cos ⁡ ( α − θ ) y = r sin ⁡ ( α − θ ) x = r\cos(\alpha-\theta) \qquad y = r\sin(\alpha-\theta) x=rcos(αθ)y=rsin(αθ)
化简后为: x 1 = x cos ⁡ θ + y sin ⁡ θ y 1 = y cos ⁡ θ − x sin ⁡ θ x1 = x\cos\theta+y\sin\theta \qquad y1 = y\cos\theta-x\sin\theta x1=xcosθ+ysinθy1=ycosθxsinθ
根据化简后的公式可得出矩阵计算公式:
[ x y ] ∗ [ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] = [ x 1 y 1 ] \begin{bmatrix}x & y\\ \end{bmatrix}*\begin{bmatrix}\cos\theta&-\sin\theta\\ \sin\theta&\cos\theta\\ \end{bmatrix}=\begin{bmatrix}x1 & y1\\ \end{bmatrix} [

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值