透射变换

  • 学习了透视变换,有些时候也称作透射变换,可能是类似于仿射变化这种叫法吧。
  • 在网上查到的资料大多又臭又长,看了半天仍然是一知半解,所以自己整理了一篇精简的笔记出来。
  • 以前不知道Z到底是怎么出来的,计算的时候Z完全当成1来看待。研究了好久才知道最终变换结果并非下文的X和Y,而是利用Z计算出的下文中的x’、y’。 希望看到这篇笔记的朋友能够规避这个坑。(别像我一样掉进去)
  • 爷爷们,给个点赞给个三联吧,谢谢!

变换矩阵和变换公式

透视变换(Perspective Transformation)是将二维的图片投影到一个三维视平面上,然后再转换到二维坐标下,所以也称为投影映射(Projective Mapping)。简单来说就是二维→三维→二维的一个过程。
透视变换矩阵表示:
[XYZ]=[a1b1c1a2b2c2a3b3c3][xy1]\begin{bmatrix}X\\Y\\Z\end{bmatrix}=\begin{bmatrix}a_1&b_1&c_1\\a_2&b_2&c_2\\a_3&b_3&c_3\end{bmatrix}\begin{bmatrix}x\\y\\1\end{bmatrix} ⎣⎡​XYZ​⎦⎤​=⎣⎡​a1​a2​a3​​b1​b2​b3​​c1​c2​c3​​⎦⎤​⎣⎡​xy1​⎦⎤​
其中,X,Y,Z代表透射变换后的三个坐标,x、y代表透射变换前的2维坐标
可以得到公式形式:
{X=a1x+b1y+c1Y=a2x+b2y+c2Z=a3x+b3y+c3\left\{\begin{aligned} X&=&a_1x+b_1y+c_1\\ Y&=&a_2x+b_2y+c_2\\ Z&=&a_3x+b_3y+c_3 \end{aligned}\right. ⎩⎪⎨⎪⎧​XYZ​===​a1​x+b1​y+c1​a2​x+b2​y+c2​a3​x+b3​y+c3​​
因为计算出后是一个3维坐标,所以我们要利用Z将值转换到2维坐标中
{x′=XZ=a1x+b1y+c1a3x+b3y+c3y′=YZ=a2x+b2y+c2a3x+b3y+c3\left\{\begin{aligned} x'&=&\frac{X}{Z}&=&\frac{a_1x+b_1y+c_1}{a_3x+b_3y+c_3}\\ y'&=&\frac{Y}{Z}&=&\frac{a_2x+b_2y+c_2}{a_3x+b_3y+c_3} \end{aligned}\right. ⎩⎪⎪⎨⎪⎪⎧​x′y′​==​ZX​ZY​​==​a3​x+b3​y+c3​a1​x+b1​y+c1​​a3​x+b3​y+c3​a2​x+b2​y+c2​​​
于是x‘和y’是二位透透射变换的最终计算结果
其中c3=1

计算矩阵参数:
可以得到通式:
{−a1x+a3xx′−b1y+b3yx′−c1=−1−a2x+a3xy′−b2y+b3yy′−c2=−1\left\{\begin{aligned} -a_1x&&+a_3xx'&-b_1y&&+b_3yx'&-c_1&&=-1\\ &-a_2x&+a_3xy'&&-b_2y&+b_3yy'&&-c_2&=-1\\ \end{aligned}\right. {−a1​x​−a2​x​+a3​xx′+a3​xy′​−b1​y​−b2​y​+b3​yx′+b3​yy′​−c1​​−c2​​=−1=−1​
将4个点带入通式组成线性方程组,则可用克拉默法则计算出相应参数

撰写时间

20210727

算法笔记 : 透视变换(透射变换)相关推荐

  1. (三) OpenCV仿射变换与透射变换(Affine and Perspective Transform)

    图像最基本的变换即仿射变换(Affine Transform)和透射变换(Perspective Transform).仿射变换是对一个向量空间进行一次线性变换并接上一次平移.透射变换是中心投影的射影 ...

  2. 变换模型——仿射变换和透射变换

    仿射变换是投射变换的一个特例 仿射变换:6参数 投射变换:8参数 仿射变换:包括线性变换(旋转.剪切.缩放)及平移:特点:平行的线变换后依然保持平行.任意的仿射变换都能表示为乘一个矩阵(线性变换),再 ...

  3. [图片校准(矫正)]——透射变换应用

    如果想要对图像进行校准,那么透射变换是非常有效的变换方法. 透射变换的定义如下:将图像投影到一个新的视平面,通常也成为投影映射. 详情参考链接:透射变换介绍 1.举例说明 直观的来看,透视变换的作用就 ...

  4. 算法笔记——数学相关

    算法笔记--数学相关 高精度 乘法逆元 排列组合 二项式定理 质数的判定和应用 约数 拓展欧几里得 大步小步算法(BSGS) 拓展大步小步算法 快速乘和快速幂 矩阵相关 欧拉函数 欧拉定理及费马小定理 ...

  5. 金蝉素数c语言,算法笔记_204:第四届蓝桥杯软件类决赛真题(Java语言C组)

    前言:以下代码仅供参考,若有错误欢迎指正哦~ 1好好学习 汤姆跟爷爷来中国旅游.一天,他帮助中国的小朋友贴标语.他负责贴的标语是分别写在四块红纸上的四个大字:"好.好.学.习".但 ...

  6. 数学建模算法笔记(2)——主成分分析

    数学建模算法笔记(2)–主成分分析 目的:主成分分析的主要目的是希望用较少的变量去解释原来资料中的大部分变异,将我 们手中许多相关性很高的变量转化成彼此相互独立或不相关的变量,实际上是一种降维方法. ...

  7. 读书笔记-opencv-投影变换

    读书笔记-opencv-投影变换 原理解析 ​ 透视变换是将图片投影到一个新的视平面,也称作投影映射.它是二维(x,y)到三维(X,Y,Z),再到另一个二维(x′,y′)空间的映射.相对于仿射变换,它 ...

  8. 算法笔记——每日一题(完结)

    算法笔记 From Now To My Death 前言 初级算法 1.两数之和 7.整数反转 9.回文数 14.最长公共前缀 27.移除元素[拷贝复制] 28.实现strStr()[双指针] 35. ...

  9. 算法笔记:Kmeans聚类算法简介

    算法笔记:Kmeans聚类算法简介 1. Kmeans算法简介 2. Kmeans算法细节 3. Kmeans算法收敛性证明 4. Kmeans算法的变体 1. cosine距离变体 2. 点积距离版 ...

最新文章

  1. java实现登录注册案例_Java基于IO版实现用户登录注册的案例
  2. Sublime Text 2 和 Verilog HDL
  3. Quartus11中新建工程
  4. vuefullcalendar怎么判断切换上下月_房间太多、楼上楼下,终极解决家里wifi信号无缝切换问题...
  5. CContextMenuManager上下文菜单管理器以及为菜单添加图标
  6. 开课吧:电商产品数据分析的核心目标是什么?
  7. PDF编辑器(widsmob pdfedit)v3.0.1
  8. 使用ffmpeg将视频转成HLS(m3u8)格式
  9. 如何可以快速解决网络劫持
  10. mysql nlssort_nlssort排序
  11. html 衣服特效,详细介绍HTML5 3D衣服摇摆动画特效如何实现
  12. 满足互动、发出用户民意的BBS论坛
  13. react中 ajax跨域请求
  14. response输出文件的时候,解决迅雷下载的问题
  15. python中rim的用法_词汇精选:rim的用法和辨析
  16. 吉林出差所见、所闻、所感
  17. 君子有所为,有所不为
  18. Java八股文一:java基础知识
  19. Hive 优化--SQL执行顺序、Hive参数、数据倾斜 、小文件优化
  20. STM32 超声波模块测距

热门文章

  1. internet时间同步服务器地址(中国国家授时中心)
  2. 怎样将蓝底照片换成白底
  3. Spring前一次定时任务没执行完,下次任务是否会执行
  4. Count the Tetris
  5. Win10以太网网络电缆被拔出怎么解决
  6. 2022-08-23:以下go语言代码输出什么?A:map[baz:2 foo:0];B:map[bar:1 baz:2];C:map[baz:2];D:不确定。 package main impo
  7. 腾讯地图API使用指南
  8. 在头条号和西瓜视频发布视频,播放量20万,却是零收益?
  9. 如何蒸出白白胖胖的馒头
  10. LeetCode-初级算法-有效的数独 ( java )