3 绝对圆锥曲线

在进一步了解相机标定前,有必要了解绝对圆锥曲线(Absolute Conic)这一概念。

对于一个3D空间的点x,其投影空间的坐标为:x~=[x1,x2,x3,x4]T。我们定义无穷远处的平面用符号Π∞表示,该平面内的投影空间点坐标满足x4=0,则位于圆锥曲线Ω上的点满足:

{x21+x22+x23=0x4=0.(1)

令x∞=[x1,x2,x3]T是绝对圆锥曲线Ω上的点,如上图所示。由定义可知xT∞x∞=0,同时也有x~∞=[x1,x2,x3,0]T满足x~T∞x~∞=0。读至此处,我们发现不管是Π∞和Ω,还是x∞和x~∞都是存粹想象出来的,很难在实际生活里找到实例,但是科学就是这么迷人,给定一个起始点,想象和求知探索的渴求却不受其限制,直至永无止境。

让我们再看公式(1),如果我们令:x=x1/x3,y=x2/x3,显而易见,位于曲线Ω上的点方程就可以写成:x2+y2=−1,这就是一个圆方程,只不过我们所想象出来的这个虚拟圆的半径为−1−−−√,当然对于了解复数(Complex number)概念的我们,这并没什么不可。

此时,或许我们会困惑,为什么要费尽心机想象出绝对圆锥曲线呢?原因在于绝对圆锥曲线所具有的一条重要特性:对于刚体变换具有不变性,这么说是不是有点不明觉厉,那就继续往下看。

首先简单讲一下刚体变换:只有物体的位置(平移变换)和朝向(旋转变换)发生改变,而形状不变,得到的变换称为刚体变换。以三维刚体变换为例:

x=[R  t]X(2)

或者表述为:

x=RX+t   or   x=R(X+C)(3)

令H=[R0t1],对于位于绝对圆锥曲线Ω上的点x~∞=[x∞0],刚体变换后的点x~′∞可表示为:

x~′∞=Hx~∞=[Rx∞0](4)

则x′∞很明显也是位于无穷远平面上的点,而且是位于同一绝对圆锥曲线Ω上点:

x′T∞x′∞=(Rx∞)T(Rx∞)=xT∞(RTR)x∞=0(5)

令绝对圆锥曲线Ω对应的图像称为ω,也被简记为IAC(Image of the absolute conic),当然这也是想象出来的~于是对于Ω上的任一点x∞,其像点m∞满足:

m~∞=sA[R  t][x∞0]=sARx∞(6)

m~∞A−TA−1m~∞=s2xT∞RTRx∞=s2xT∞x∞=0(7)

因此,绝对圆锥曲线成像构成一个虚构曲线,并且由公式(7)可以看出,这个虚拟曲线由A−TA−1决定,这与相机的外参完全无关,而仅仅由相机内参决定。可以设想,如果我们找到了绝对圆锥曲线通过相机所成的图像,那就可以求解出相机内参。至此,我想大家也就明白为什么会提出Absolute Conic这一概念了吧。事实上,这一理论在相机自检校标定法(Self-calibration)中作为基础理论,十分重要。

后续文章将会为大家介绍几种确定绝对圆锥曲线Ω对应的图像ω的方法。

Camera Calibration 相机标定:原理简介(三)的更多相关文章

  1. Camera Calibration 相机标定

    Camera Calibration 相机标定 一.相机标定方法 在opencv中提供了一组函数用于实现相机的标定,标定返回的值包括:相机内参矩阵(fx fy xc yc).相机外参矩阵(R t)以及 ...

  2. Camera Calibration 相机标定:原理简介(五)

    5 基于2D标定物的标定方法 基于2D标定物的标定方法,原理与基于3D标定物相同,只是通过相机对一个平面进行成像,就可得到相机的标定参数,由于标定物为平面,本身所具有的约束条机,相对后者标定更为简单. ...

  3. Camera Calibration 相机标定:原理简介(四)

    4 基于3D标定物的标定方法 使用基于3D标定物进行相机标定,是一种传统且常见的相机标定法.3D标定物在不同应用场景下不尽相同,摄影测量学中,使用的3D标定物种类最为繁杂,如图-1的室内控制场,由多条 ...

  4. Camera Calibration 相机标定:原理简介(一)

    1 相机标定常见方法 广义来说,相机标定不单包括成像过程的几何关系标定,还包括辐射关系的标定,本文只探讨几何关系.相机标定是3D计算机视觉(Computer Vision)里从2D图像中提取量测信息的 ...

  5. Camera Calibration 相机标定:原理简介(二)

    2 针孔相机模型 常见的相机标定中,使用的相机多为针孔相机(Pinhole camera),也就是大家熟知的小孔成像理论.将其中涉及的坐标系之间的相互转换抽离出来,即为针孔相机模型的核心. 上图所示的 ...

  6. Camera Calibration 相机标定:Opencv应用方法

    本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/49427383 Opencv中Camer ...

  7. 【视频开发】【计算机视觉】相机标定(Camera calibration)原理、步骤

    相机标定(Camera calibration)原理.步骤 author@jason_ql(lql0716)  http://blog.csdn.net/lql0716 在图像测量过程以及机器视觉应用 ...

  8. 相机标定:PNP基于单应面解决多点透视问题

              利用二维视野内的图像,求出三维图像在场景中的位姿,这是一个三维透视投影的反向求解问题.常用方法是PNP方法,需要已知三维点集的原始模型. 本文做了大量修改,如有不适,请移步原文:  ...

  9. 相机标定简介与MatLab相机标定工具箱的使用(未涉及原理公式推导)

    相机标定 一.相机标定的目的 确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数. 二.通用摄像机模型 世界坐标系.摄像机坐标 ...

随机推荐

  1. Vue学习之路第四篇:v-html指令

    上一篇我们讲解了两种方式,把Vue对象的数据展示在页面上: 1.插值表达式 2.v-text指令 但是如果我们展示的数据包含元素标签或者样式,我们想展示标签或样式所定义的属性作用,该怎么进行渲染,比如 ...

  2. 用 JavaScript 实现简单拼图游戏

    本篇主要讲解,如何利用原生的 JavaScript 来实现一个简单的拼图小游戏. 线上体验地址:拼图 一.游戏的基础逻辑 想用一门语言来开发游戏,必须先了解如何使用这门语言来实现一些基础逻辑,比如图像 ...

  3. [剑指offer] 14. 链表中倒数第K个节点+翻转+逆序打印+合并两个排序链表 + 链表相交(第一个公共节点) (链表)

    题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路:  两个指针,起始位置都是从链表头开始,第一个比第二个先走K个节点,当第一个走到链表尾时,第二个指针的位置就是倒数第k个节点.(两指针始终相 ...

  4. 使用iframe标签时如何通过jquery隐藏滚动条

    通过mouseover和mouseout事件来控制iframe的滚动条 代码如下:

  5. linux部分常用命令

    linux的命令挺多的,下面是我常用的,其实也不可能在敲代码的时候把这个博客拿出来对着写,就是想记录一下,刚开始都觉得不好记,多敲几遍就记住了!!! 创建文件夹:mkdir filename 删除当前 ...

  6. visual studio 2015将已有项目添加到码云(gitee)

    visual studio 2015将已有项目添加到码云的步骤包括:gitee新建项目.清空项目及VS发布项目 1.gitee新建项目 2.清空项目 清空项目则会将vs项目的master分支发布到gi ...

  7. Nutch命令大全

    Nutch采用了一种命令的方式进行工作,其命令可以是对局域网方式的单一命令也可以是对整个Web进行爬取的分步命令.主要的命令如下: 1. Crawl Crawl是"org.apache.nu ...

  8. Springmvc Get请求Tomcat、WebLogic中文乱码问题

    Springmvc Get请求Tomcat.WebLogic中文乱码问题 学习了:http://www.cnblogs.com/qingdaofu/p/5633225.html http://www. ...

  9. Webserver管理系列:4、WinPE

    WinPE能够识别NTFS分区,使用WinPE能够备份/还原系统.能够重置用户password. 首先给大家看下怎样用WinPE重置password: 放入WinPE光盘-〉启动后-〉点開始菜单-〉程 ...

  10. D3js-绘制地图时出现过小, 设置scale还是无效 的解决方法

    使用d3绘制某个地市的地图时,把scale成非常大但是还是无法达到想要的效果. //---------------------------------------------------------- ...