在我们使用针孔相机时,我们会丢失大量重要的信息,比如说图像的深度,或者说图像上的点和摄像机的距离,因这是一个从 3D 到 2D 的转换。因此一 个重要的问题就产生了,使用这样的摄像机我们能否计算除深度信息呢?答案 就是使用多个相机。我们的眼睛就是这样工作的,使用两个摄像机(两个眼睛), 这被称为立体视觉。

在进入深度图像之前,我们要先掌握一些多视角几何的基本概念。在本节中我们要处理对极几何。下图为使用两台摄像机同时对一个一个场景进行拍摄的示意图。

如果只是用一台摄像机我们不可能知道 3D 空间中的 X 点到图像平面的距离,因为 OX 连线上的每个点投影到图像平面上的点都是相同的。但是如果我 们也考虑上右侧图像的话,直线 OX 上的点将投影到右侧图像上的不同位置。 所以根据这两幅图像,我们就可以使用三角测量计算出 3D 空间中的点到摄像 机的距离(深度)。这就是整个思路。

直线 OX 上的不同点投射到右侧图像上形成的线 l′ 被称为与 x 点对应的极线。也就是说,我们可以在右侧图像中沿着这条极线找到 x 点。它可能在这条 直线上某个位置(这意味着对两幅图像间匹配特征的二维搜索就转变成了沿着极线的一维搜索。这不仅节省了大量的计算,还允许我们排除许多导致虚假匹配的点)。这被称为对极约束。与此相同,所有的点在其他图像中都有与之对应 的极线。平面 XOO' 被称为对极平面。

O 和 O' 是摄像机的中心。从上面的示意图可以看出,右侧摄像机的中心O' 投影到左侧图像平面的 e 点,这个点就被称为极点。极点就是摄像机中心连 线与图像平面的交点。因此点 e' 是左侧摄像机的极点。有些情况下,我们可能 不会在图像中找到极点,它们可能落在了图像之外(这说明这两个摄像机不能拍摄到彼此)。

所有的极线都要经过极点。所以为了找到极点的位置,我们可以先找到多条极线,这些极线的交点就是极点。 本节我们的重点就是找到极线和极点。为了找到它们,我们还需要两个元素,本征矩阵(E)和基础矩阵(F)。本征矩阵包含了物理空间中两个摄像机 相关的旋转和平移信息。如下图所示:

基础矩阵 F 除了包含 E 的信息外还包含了两个摄像机的内参数。由于 F 包含了这些内参数,因此它可以它在像素坐标系将两台摄像机关联起来。(如果 使用是校正之后的图像并通过除以焦距进行了归一化,F=E)。简单来说,基 础矩阵 F 将一副图像中的点映射到另一幅图像中的线(极线)上。这是通过匹 配两幅图像上的点来实现的。要计算基础矩阵至少需要 8 个点(使用 8 点算 法)。点越多越好,可以使用 RANSAC 算法得到更加稳定的结果(该算法我们在之前已经讲过)。

本次教程我们简述其部分原理,将在下次进行实战。

更多openvino技术信息可以入群交流~

OpenVINO技术交流群QQ223824636

申请时备注:B站

python 几何_OpenCV-Python系列之对极几何理论相关推荐

  1. OpenCV系列之对极几何 | 五十一

    目标 在本节中 我们将学习多视图几何的基础知识 我们将了解什么是极点,极线,极线约束等 基础概念 当我们使用针孔相机拍摄图像时,我们失去了重要信息,即图像深度. 或者图像中的每个点距相机多远,因为它是 ...

  2. python手势识别_OpenCV+python手势识别框架和实例讲解

    基于OpenCV2.4.8和 python 2.7实现简单的手势识别. 以下为基本步骤 1.去除背景,提取手的轮廓 2. RGB->YUV,同时计算直方图 3.进行形态学滤波,提取感兴趣的区域 ...

  3. ostu阈值分割python实现_opencv python 图像二值化/简单阈值化/大津阈值法

    1简单的阈值化 cv2.threshold第一个参数是源图像,它应该是灰度图像. 第二个参数是用于对像素值进行分类的阈值, 第三个参数是maxVal,它表示如果像素值大于(有时小于)阈值则要给出的值. ...

  4. [OpenCV实战]49 对极几何与立体视觉初探

    本文主要介绍对极几何(Epipolar Geometry)与立体视觉(Stereo Vision)的相关知识.对极几何简单点来说,其目的就是描述是两幅视图之间的内部对应关系,用来对立体视觉进行建模,实 ...

  5. 本质矩阵与基本矩阵(对极几何)

    知道相机成像原理与矩阵表达之后,我们依然是仅仅专注于单相机的成像,可我们知道单个相机图片并不能告诉我们物体的深度信息,这时至少需要两个相机,这样在两视图间内在的射影几何关系就是对极几何,而基本矩阵就算 ...

  6. 机器人学 —— 机器人视觉(极几何)

    极几何是机器人视觉分支--双目视觉中,最为重要的概念.与结构光视觉不同,双目视觉是主!动!测!量!方法. 1.极几何的研究前提 极几何的研究对象是两幅有重叠区域图像.研究目标是提取相机拍摄位姿之间的关 ...

  7. 视觉SLAM⑦---视觉里程计Ⅰ(特征点法、2D-2D对极几何)

    目录 7.0 本章主要目标 7.1 特征点法 7.1.1 特征点 7.1.2 ORB特征 7.1.3 特征匹配 7.2 实践:特征提取和匹配 7.2.1 OpenCV的ORB特征 7.2.2 手写OR ...

  8. Python+OpenCV:对极几何(Epipolar Geometry)

    Python+OpenCV:对极几何(Epipolar Geometry) 理论 When we take an image using pin-hole camera, we loose an im ...

  9. python画k线图 自定周期_【量化小讲堂- Python、pandas技巧系列】极简方法将日线数据转为周线、月线或其他周期...

    引言: 本系列帖子"量化小讲堂",通过实际案例教初学者使用python.pandas进行金融数据处理,希望能对大家有帮助. 想要快速.系统的学习量化知识,可以参与我与论坛合作开设的 ...

最新文章

  1. 马维英坐镇,共话AI赋能生命健康与生物医药
  2. 按照这步骤来刷题,两个月你亦能成为王者
  3. 《敏捷软件开发》学习笔记 第20章
  4. GDCM:gdcm::Validate的测试程序
  5. apt 根据注解,编译时生成代码
  6. apk源码查看工具_如何查看Linux命令工具的源码?
  7. python练手经典100例微盘_Python练手项目实例汇总(附源码下载)
  8. 191. 位1的个数 golang
  9. ORACLE数据库触发器
  10. 需求分析:每个产品经理都应掌握的需求核心组件分析
  11. svn用oracle认证方法,连接远程oracle和SVN服务器客户端的使用
  12. 呼叫中心系统的工单流转处理流程
  13. 电力拖动自动控制系统_专插本专业全面分析:电子工程及其自动化
  14. MATLAB Radon检测图像,初学radon变换 检测直线 matlab程序实现
  15. 深信服虚拟机服务器功率,深信服VDI基准测试:让服务器资源最大化使用
  16. 花瓣网画板上多张图片如何快速复制保存到
  17. tp6 api请求返回参数统一配置方法
  18. 【QT】串口调试助手(串口编程代码详解)
  19. MD5在线加密,带盐
  20. window8系统 dns有问题怎么修复,浏览器代理设置,浏览器提示网页无法显示

热门文章

  1. 全球顶会论文作者,28天手把手带你复现顶会论文
  2. 从局部脑到全脑:时空域分层神经网络脑电情绪识别模型
  3. 每周一起读 × 招募 | WWW 2019:基于层次化强化学习的多源搜索展示优化
  4. 算法竞赛入门与进阶 (二)单调队列、单调栈
  5. css 选择一列表菜单,css实现菜单列表随滚动条指定到对应内容
  6. beyond compare类似软件_BIM工作是什么?需要哪些BIM软件来完成?
  7. 【算法系列之万字总结常用的查找算法,持续补充更新中】
  8. Electrification
  9. python队列在进程传递_Python 进程队列
  10. elasticsearch-7.3安装