三维空间的点X用齐次坐标表示为一个4维矢量X=(x1, x2, x3,x4)T. 当x4≠0时表示IP3中非齐次坐标为(X, Y, Z)T的点, 其中X=x1/ x4, Y= x2/ x4, Z= x3/x4. 当x4=0时表示无穷远点.

IP3上的射影变换是由4×4非奇异矩阵给出, 它是关于齐次4维矢量的线性变换: X’=HX. 变换矩阵H是齐次的并有15个自由度. 矩阵的16个元素扣去一个全局尺度就是它的自由度数. 与平面射影变换的情况一样, 该映射是保线变换( 直线被映射到直线) , 它保留诸如直线与平面的交点等关联关系与接触的阶.

平面

三维空间中平面可以写成π1X+π2Y+π3Z+π4=0. 显然, 该等式乘上一个非零常数仍然成立, 所以只有平面方程稀疏的三对独立比率是有意义的. 因此在三维空间中一张平面有3个自由度. 平面的齐次表示是4维矢量π=(π12, π3, π4)T.  齐次化可以表示为π1x12x23 x34 x4=0, 或者更简洁πTX=0. 它表示点X在平面π上. π的前三个分量对应于欧式几何中平面的法线, 用非齐次记号可以写成三维矢量形式下熟知的平面方程:

其中,  n=(π 12 , π 3 ) T ,  d4 . 在此式中 d/||n|| 是原点到平面的距离,  (nX+d)/||n|| 是点到平面的距离 (这里暂时用X表示三维点的非齐次表示).

直线

两点的连线或两平面的相交定义一条直线. 在三维空间中, 直线有四个自由度(把直线看成由它与两正交平面的交点来定义, 其中每张平面上的交点有两个参数来确定, 所以一共有四个自由度). 三维空间中的直线表示相当难处理, 因为4个自由度的对象应该用5维齐次矢量表示(二维空间中的直线有两个自由度, 斜率和截距), 但问题是5维齐次矢量与表示点和平面的4维齐次矢量很难同时在数学表达式中使用.

在IP3中, 平面, 点, 直线之间存在许多几何关系, 例如

1. 平面可由一般位置的三个点或一条直线与一个点的联合来唯一确定(一般位置指三点不共线或在后一种情况下指点不在直线上).

2. 两张不同的平面相交于唯一的直线.

3. 三张不同的平面相交于唯一的点.

由于直线的代数表示不再像IP2中用3维矢量表示那样简单, 这里不给出介绍 (可参考多视图几何2.2.2).

三点确定一张平面. 设三点Xi在平面π上, 那么每点满足πTXi=0, i=1,2,3, 将这些方程联合成一个矩阵方程

因为一般位置上的三点线性无关, 所以由它们作为行组成的3×4矩阵的秩为3. 由这些点所定义的平面π作为它的1维右零空间被唯一的确定(相差一个常数因子). 如果矩阵的秩为2, 则零空间是2维的, 那么这些点是共线的, 并定义了以共线点组成的直线为轴的一个平面束.

在IP2中, 点与线对偶, 过两点x, y的直线可以类似地用求以xTyT为行组成的2×3矩阵的零空间获得. 当然也可以由矢量代数直接得到一个更便利的公式I=x×y.

三平面确定一点. 三张平面πi的交点X可以通过求以三张平面为行的3×4矩阵的右零空间直接计算出来:

类似于2D射影变换, 3D射影变换有欧式(6 dof), 相似(7 dof), 仿射(12 dof) 和射影(15 dof). 射影变换的15个自由度分别如下: 7个用于相似变换(旋转3个, 平移3个, 均匀缩放1个), 五个用于仿射变换, 三个用于射影变换.

3D射影几何和射影变换相关推荐

  1. MVG(second)读书笔记-3D摄影几何和变换

     本部分包括3D射影几何和变换,包括点和直线,二次曲线的齐次表示,还有等距变换,相似变换,仿射变换和射影变换等,很多是2D射影几何和变换的直接推广 1.点与线  点齐次表示: 3D空间中一个点的任何齐 ...

  2. MVG(second)读书笔记-2D射影几何和变换

    最近刚买到Multiple View Geometry in Computer Vision 计算机中的多视几何,它是三维重建和视觉SLAM的入门基础的经典教材,内容比较丰富,自己看过一遍,挑一些自己 ...

  3. 计算机视觉中的多视图几何<Part0—基础知识:射影几何、变换和估计>(2)

    2. 3D射影几何和变换 射影平面的推广,点和线的对偶关系推广到点和平面的对偶关系,定义了三维空间中的无穷远平面π∞\pi_\infinπ∞​. 2.1 点和射影变换 三维空间点齐次表达方式为X=(X ...

  4. 《计算机视觉中的多视图几何》笔记(一)有限射影摄像机

    目录 前言 1.二维射影几何与变换 1.1数学基础 1.2射影变换 2.有限射影摄像机 2.1有限摄像机模型 2.2射影摄像机的几何含义 2.3射影摄像机对点的作用 2.3.1点对射线的反向投影 2. ...

  5. 双目立体视觉建立深度图_从单幅图像到双目立体视觉的3D目标检测算法

    原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的. 其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明 ...

  6. 【计算机视觉|人脸建模】SOFA:基于风格、由单一示例的2D关键点驱动的3D面部动画

    本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 标题:SOFA: Style-based One-shot 3D Facial Animation Driven by 2D landmark ...

  7. 计算机视觉中的多视图几何<Part0—基础知识:射影几何、变换和估计>(1)

    1. 2D射影几何和变换 射影几何的概念和表示法是多视图几何分析的核心,使用齐次坐标就能用线性矩阵方程来表示非线性映射(例如透视投影):主要目的是为了从透视图像中恢复仿射和度量性质. 1.1 平面几何 ...

  8. MVG学习笔记(3) --从多个视角重建

    文章目录 从多个视角重建 重建步骤 从多个视角重建   我们现在转向本次博文的议题- 从几幅图像重建场景. 最简单的情况是两个图像,我们将首先考虑. 作为一种数学抽象,我们将讨论局限于仅由点组成的&q ...

  9. 速度精度双SOTA! TPAMI2022最新车道线检测算法(Ultra-Fast-Lane-Detection-V2)

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心技术交流群 后台回复[车道线综述]获取基于检测.分割.分类.曲线拟合等近几十篇学习论文! ...

最新文章

  1. 一文读懂:深扒人脸识别60年技术发展史
  2. ai ci ba logon use infomation
  3. linux系统UDP的socket通信编程
  4. java反射 基本知识
  5. Python入门100题 | 第019题
  6. 【软件-软件设计师】操作系统知识架构图
  7. asp.net日期显示 问题
  8. (转)使用mysqladmin ext了解MySQL运行状态
  9. ToastUtil【简单的Toast封装类】【未自定义Toast的显示风格】
  10. IOS 如何获取ppi
  11. hive与hbase数据类型对应关系
  12. 惠普:某些 SSD 驱动的寿命只有32,768 小时(3年多),立即更新!
  13. mysql 单向复制_Mysql 复制(Replication)实现
  14. 中琛物联‘连接+云+数据’服务助阵
  15. BootStrap modal() 如何根据返回的HTML宽度自动调整宽度?
  16. keil4出现目标未被创建_STM32入门系列-创建寄存器模板
  17. 学计算机编程要学什么软件有哪些内容,加工中心自学电脑编程应该学习什么软件...
  18. 日志分析软件 Splunk
  19. 微信客户端电话人工服务器,微信客服电话多少 微信客服电话人工服务怎么接通...
  20. 服务器安装找不到lsi驱动,IBM 机架式服务器RAID卡驱动问题

热门文章

  1. python----编写游戏人物
  2. 网红的冬天四季如春,人间百味自有芬芳
  3. Jmeter实现生成全局参数-随机数
  4. 银行客户用户画像_技术分享 | 基于数据中台的银行客户画像体系构建
  5. Java实现 LeetCode 765.情侣牵手
  6. 新建springboot项目启动后自动停止
  7. java—使用反射对类进行操作(Class对象获取类名,包名,父类,接口,构造方法,普通方法,属性)
  8. 响应式服装连锁加盟店网站织梦模板 HTML5品牌女装加盟网站源码(自适应手机版)
  9. xuri网吧开机脚本
  10. 用 PS 简单去文字