当前位置: 首页 > 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. 平行性:平行线经过变换后依然是平行线。

相关文章:

  • linux oracle 19c 静默安装
  • 使用Redis实现实时排行榜
  • Redis(持久化)
  • Gradle与Idea整合
  • python(八)-数据类型转换
  • Vue3 + Three.js 场景编辑器开发实践
  • JAVA学习-多线程
  • 【云馨AI-大模型】2025年4月第三周AI领域全景观察:硬件革命、生态博弈与国产化突围
  • Linux:基础IO---动静态库
  • Python爬虫实战:获取B站查询数据
  • 【一起学Rust】使用Thunk工具链实现Rust应用对Windows XP/7的兼容性适配实战
  • 车载诊断新架构--- SOVD初入门(上)
  • 数据库基础-B+树
  • (二)Trae 配置C++ 编译
  • 少儿编程路线规划
  • 什么是零缺陷质量管理?
  • PHP怎样判断浏览器类型和浏览器语言?
  • CF1016赛后总结
  • 2025年Q1数据安全政策、规范、标准以及报告汇总共92份(附下载)
  • KWDB 创作者计划 KWDB(KaiwuDB)系列专题 (四) KWDB核心概念解析:多模、时序与分布式
  • 海康威视:去年海外主业和机器人等创新业务占比首次超50%
  • 女子报警称醉酒后疑似被性侵,长沙警方:嫌犯邱某某已被刑拘
  • 新消费观察 | 重点深耕,外资科技企业继续看好中国发展
  • 许志强评《伐木》|伯恩哈德的文人共和国
  • 生于1984年,郭宝任湖北黄石市副市长
  • 哈马斯:愿就达成一项“全面”协议进行谈判