OpenCV中的对极几何和对极约束

  • 1. 原理
  • 参考

这篇博客将学习多视图几何的基础知识,如什么是对极、对极线、对极约束等。

1. 原理

当使用针孔相机拍摄图像时会丢失一个重要的信息,即图像的深度。或者图像中的每个点离相机有多远,因为它是 3D 到 2D 的转换。


如上图俩个相机一左一右模拟眼睛成像,就可以确定3D点。

如果只使用左相机就无法找到图像中点 x 对应的 3D 点。因为 OX 线上的每个点都投影到图像平面上的同一点。但也要考虑正确的图像。现在 OX 线上的不同点投影到右平面上的不同点 (x’)。因此,通过这两个图像就可以对正确的 3D 点进行三角测量。

可以在左侧图像中看到,所有外线都在右侧图像外的一点处会聚。那个交汇点就是极点,如上图中最中间的x;

OX 上不同点的投影在右平面上形成一条线(线 l’),称它为对应于点 x 的epiline对极。这一意味着,要在其他图像中找到匹配点,不需要搜索整个图像,只需沿着对极搜索即可。因此它提供了更好的性能和准确性)。这称为对极约束。 类似地,所有点都将在另一幅图像中具有相应的外线。 XOO’平面称为对极平面。

O 和 O’ 是相机中心,可以看到右摄像机 O’ 的投影在点 e 的左图像上可见。它被称为对极。对极点是通过相机中心和图像平面的线的交点。类似地,e’ 是左相机的对极。

基本矩阵估计对匹配的质量、异常值等很敏感。

参考

  • https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_calib3d/py_epipolar_geometry/py_epipolar_geometry.html#epipolar-geometry

OpenCV中的对极几何和对极约束相关推荐

  1. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-对极几何和对极约束、本质矩阵、基础矩阵

    专栏系列文章如下:  专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLA ...

  2. 独家 | OpenCV1.12 对极几何和立体视觉简介(附链接)

    作者:Kaustubh Sadekar 翻译:黄瑞迪 校对:张玲本文约6500字,建议阅读15分钟本文将使用OpenCV和立体视觉来赋予计算机这种深度知觉能力. 你是否曾经好奇过,为什么你带上特制的3 ...

  3. 3D视觉(五):对极几何和三角测量

    3D视觉(五):对极几何和三角测量 对极几何(Epipolar Geometry)描述的是两幅视图之间的内在射影关系,与外部场景无关,只依赖于摄像机内参数和这两幅试图之间的的相对姿态. 文章目录 3D ...

  4. 在OpenCV中使用单应性进行姿势估计

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 什么是单应性 单应性是一种平面关系,可将点从一个平面转换为另一个平 ...

  5. OpenCV中使用Eigenfaces 或 Fisherfaces进行人脸识别

    连接:OpenCV中使用Eigenfaces 或 Fisherfaces进行人脸识别 OpenCV中使用Eigenfaces 或 Fisherfaces进行人脸识别 Translate by Dawn ...

  6. Opencv中直方图函数calcHist

    Opencv中直方图函数calcHist calcHist函数在Opencv中是极难理解的一个函数,一方面是参数说明晦涩难懂,另一方面,说明书给出的实例也不足以令人完全搞清楚该函数的使用方式.最难理解 ...

  7. [OpenCV-Python] OpenCV 中摄像机标定和 3D 重构 部分 VII

    部分 VII 摄像机标定和 3D 重构 OpenCV-Python 中文教程(搬运)目录 42 摄像机标定 目标 • 学习摄像机畸变以及摄像机的内部参数和外部参数 • 学习找到这些参数,对畸变图像进行 ...

  8. OpenCV-Python] OpenCV 中摄像机标定和 3D 重构 部分 VII

    https://www.cnblogs.com/Undo-self-blog/p/8448500.html 42 摄像机标定 目标 • 学习摄像机畸变以及摄像机的内部参数和外部参数 • 学习找到这些参 ...

  9. 极路由B70/极路由4增强版改spi,pb-boot启动后切换回nand刷nand breed

    极路由B70/极路由4增强版改8脚spi-nor flash,编程器刷入pb-boot,启动后切换回nand,刷nand flash 的breed 刷好pb-boot的spi-nor flash待用. ...

最新文章

  1. BrainNet:用于人与人之间直接协作的多人脑对脑接口
  2. chrmoe debug
  3. mongoose 在数组中添加数据
  4. springboot logback自定义配置文件路径
  5. c 语言 移位四舍五入,关于C 语言中的四舍五入问题
  6. kettle组件-应用
  7. 有效的python属性管理:描述符的使用
  8. c#SQL参数化查询自动生成SqlParameter列表
  9. Unity横版过关游戏,敌人的触发、激活问题
  10. 源码必须会丨一个bug的解决过程,让你明白阅读源码的重要性!
  11. p牛java安全漫谈学习笔记(2)_反序列化与urldns链(基础)
  12. 04-小键盘字母u输出为4的问题
  13. 通过 iso 重装阿里云 ECS
  14. 论文阅读笔记:On the Role of Correlation and Abstraction in Cross-Modal Multimedia Retrieval
  15. “熊猫烧香”病毒简介及特征
  16. Android 自定义View 实例2_Clipping Canvas
  17. STM32 USB AUDIO 基础篇①——通过STM32CubeMX生成USB Speaker音频播放Demo(史上最简单)
  18. EMC 共模电感选型
  19. 如何使用Domino实用程序(Updall, Compact, Fixup) 进行维护
  20. A+B+C写作公式?顶会论文创新点干货!

热门文章

  1. Django 模板继承4.2
  2. [JAVA EE] JPA 查询用法:自定义查询,分页查询
  3. Windows 系统执行Shell 脚本的方法
  4. Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in lib
  5. TMS Scripter importtool的使用
  6. 6.微信小程序的如何使用全局属性
  7. 机器学习入门(08)— 损失函数作用和分类(均方误差、交叉熵误差)
  8. C# BackgroundWorker 详解
  9. JavaScript--'data-'的用法(1)
  10. http账户密码的截取