当前位置: 首页 > news >正文

opencv图像旋转(单点旋转的原理)

首先我们以最简单的一个点的旋转为例子,且以最简单的情况举例,令旋转中心为坐标系中心O(0,0),假设有一点P_{0}(x_{0},y_{0}),P_{0}离旋转中心O的距离为r,OP_{0}与坐标轴x轴的夹角为\alpha,P_{0}绕O顺时针旋转\theta角后对应的点为P(x,y),如下图所示:

那么我们可以得到如下关系:

也被称作旋转矩阵。然而我们所要的不仅仅是可以围绕图像左上角进行旋转,而是可以围绕任意点进行旋转。那么我们可以将其转化成绕原点的旋转,其过程为:

  1. 首先将旋转点移到原点

  2. 按照上面的旋转矩阵进行旋转得到新的坐标点

  3. 再将得到的旋转点移回原来的位置

也就是说,在以任意点为旋转中心时,除了要进行旋转之外,还要进行平移操作。那么当点经过平移后得到P点时,如下图所示:

于是我们就可以根据这个矩阵计算出图像中任意一点绕某点旋转后的坐标了,这个矩阵学名叫做仿射变换矩阵,而仿射变换是一种二维坐标到二维坐标之间的线性变换,也就是只涉及一个平面内二维图形的线性变换,图像旋转就是仿射变换的一种。它保持了二维图形的两种性质:

  1. 平直性:直线经过变换后依然是直线。

  2. 平行性:平行线经过变换后依然是平行线。

http://www.xdnf.cn/news/34273.html

相关文章:

  • 中国AIOps行业分析
  • [dp19_01背包] 目标和 | 最后一块石头的重量 II
  • AUTOSAR图解==>AUTOSAR_SWS_IntrusionDetectionSystemManager
  • 652SJBH动漫网站Cosplay
  • 嵌入式芯片中的 低功耗模式 内容细讲
  • 【NLP 66、实践 ⑰ 基于Agent + Prompt Engineering文章阅读】
  • linux socket编程之udp(实现客户端和服务端消息的发送和接收)
  • Springboot+vue3开发项目——热点事件
  • [特殊字符] 高质量 Java 综合题 × 10(附应用场景 + 多知识点考核)
  • Spring Boot常用注解全解析:从入门到实战
  • 洛谷P1120 小木棍
  • 《AI大模型应知应会100篇》第26篇:Chain-of-Thought:引导大模型进行步骤推理
  • 94. 二叉树的中序遍历
  • Simulink中建立交流单项永磁同步电机模型教程
  • python——列表和元组
  • 深入剖析 HashMap:内部结构与性能优化
  • Linux——进程概念
  • 网络开发基础(游戏)之 Socket API
  • [Java EE] Spring 配置 和 日志
  • 代码随想录训练营第35天 || 01背包问题 416. 分割等和子集
  • Vue基础(6)_键盘事件
  • 玛哈特整平机:工业制造中的关键设备
  • Java 动态代理实现
  • Python scikit-learn 机器学习算法实践
  • 【每天一个知识点】模式识别
  • MySQL进阶-存储过程-变量语法结构
  • C++用于保留浮点数的两位小数,使用宏定义方法(可兼容低版本Visual Studio)
  • JZ8P1533 充电型数字可编程控制器
  • 200+短剧出海平台:谁能成为“海外红果”?
  • 电脑端移植至手机平板:攻克难题,仙盟架构显神通——仙盟创梦IDE