八、走向三维

八、走向三维

        我们前面花了七篇博文做铺垫,我们所做的一切努力都是为了最后的这一击——立体成像。因为玉米的这个系列文章是对双目视觉几何框架的总结。此处跳过匹配,假设左右图像点的完美匹配的。只看在几何上,三维坐标是如何被还原的。相对来说,最后的这一步,比前面是要轻松许多的,因为我们前面已经做了大量的工作。这些工作使得最后的这一步,由不可能称为可能,由复杂变得简单,吧啦吧啦。好吧,闲话少说,让我们一起来见证这一时刻吧。  

        此处我们按opencv中cvcalibratecamera2()函数得到的焦距f进行三维坐标的求解。

        请大家看下面示意图(莫怪,玉米的图一向画的丑):


        根据最简单的相似三角形关系,我们就可以求出,物点坐标(X,Y,Z)。

        首先,


         其中,s为像素的物理尺寸,d就是两个摄像机间的视差,d=(uL-uR)s。


        我们得到的这个三维坐标,相当于是在右摄像机的摄像机坐标系上的。

       那么重建就是透视投影的逆过程,我们可以把这个过程表示成矩阵形式。我们定义Q为反投影矩阵。那么依照上式:

        齐次坐标形式的三维坐标恢复,矩阵形式如下:

        至此,玉米的《计算机视觉学习笔记》双目视觉几何框架系列文章顺利收尾。希望这八篇博文对大家,尤其是计算机视觉的初学者有所帮助。

        在行文过程中,玉米引用了网络上的一些图片,但大多找不到出处,所以未给出引用表。如这些图片的主人,发现了自己的图片在这个博客上,请和玉米联系,玉米会将引用出处,重新给出!

       本系列博文中涉及的数学运算颇多,玉米才疏学浅,中间若有理解上的错误,恳请大家批评指正!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通用连接池项目开启

通用连接池项目开启 待完善......转载于:https://www.cnblogs.com/aresyl/p/5552092.html

HALCON示例程序fin.hdev通过形态学检测缺陷

HALCON示例程序fin.hdev通过形态学检测缺陷 示例程序源码(加注释) 关于显示类函数解释 dev_update_window (‘off’) read_image (Fins, ‘fin’ [1:3]) get_image_size (Fins, Width, Height) dev_close_window () dev_open_window (0, 0, Width[0],…

FEZ前端模块化工程开发框架

FEZ FEZ 是面向前端模块化工程的开发框架。主要目的是统一前端开发模式和项目开发结构,自动化前端工作流,提高开发效率和开发质量。使用持续集成等软件工程的架构模式,集成众多业界先进的解决方案,让研发人员更专注于业务逻辑的实…

栈内存和堆内存

堆和栈这两个字我们已经接触多很多次,那么具体是什么存在栈中什么存在堆中呢?就拿JavaScript中的变量来说: 首先JavaScript中的变量分为基本类型和引用类型。 基本类型就是保存在栈内存中的简单数据段,而引用类型指的是那些保存在…

L~M方法

L~M方法: L~M(Levenberg-Marquardt)方法有些让人摸不清头脑。玉米觉得L~M让人困扰的主要原因有两点:一是L~M从何而来、二是L~M怎么样用?因为玉米也不是研究最优化理论的,所以玉米在这里用较为通俗的观点&a…

Android——Activity去除标题栏和状态栏

一、在代码中设置 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //去除title requestWindowFeature(Window.FEATURE_NO_TITLE); //去掉Activity上面的状态栏getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSC…

Ghosts for Tea

Ghosts for Tea 喝茶?闹鬼? Ten pence for a view over the bay . said the old man with the telescope. Lovely clearmorning. Have a look at the old lighthouse and the remains of the great shipwreckof 1935. “在如此可爱清爽的早晨&#xff0…

HALCON示例程序find_pads.hdev通过fit_rectangle2_contour_xld绘制精准轮廓

HALCON示例程序find_pads.hdev通过fit_rectangle2_contour_xld绘制精准轮廓 示例程序源码(加注释) 关于显示类函数解释 dev_update_pc (‘off’) dev_update_window (‘off’) dev_update_var (‘off’) read_image (Image, ‘die_pads’) dev_close_w…

IDEA将项目上传至码云/GitHub托管

前言 好久都没有写博客了,由于博主之前一直都在上班处于加班的阶段,所以根本就没有时间去学习。现在请假回到学校写论文,有时间来学习了。 所以会不断的进行博客的更新,以及分享我在公司学到的一些新的技术,希望大家多…

BZOJ 1937: [Shoi2004]Mst 最小生成树 [二分图最大权匹配]

传送门 题意: 给一张无向图和一棵生成树,改变一些边的权值使生成树为最小生成树,代价为改变权值和的绝对值,求最小代价 线性规划的形式: $Min\quad \sum\limits_{i1}^{m} \delta_i$ $Sat\quad $非树边边权$\ge$生成树上…

找bug

1.在输入数据按保存键后不知道数据是否已经存入数据库。 修改:增加一个对数据库的监听事件来监听数据库是否发生变化。 2.空数据也能保存成功。 修改:增加一个监听事件来检测是否输入数据。 3.在输入框中输入不否和输入框对数据的要求,但不提…

HALCON示例程序forest.hdev识别森林中的树

HALCON示例程序forest.hdev识别森林中的树 示例程序源码(加注释) 关于显示类函数解释 dev_close_window () dev_update_window (‘off’) read_image (Forest, ‘forest_air1’) get_image_size (Forest, Width, Height) dev_open_window (0, 0, Width…

Hadoop学习之路(十八)MapReduce框架Combiner分区

对combiner的理解 combiner其实属于优化方案,由于带宽限制,应该尽量map和reduce之间的数据传输数量。它在Map端把同一个key的键值对合并在一起并计算,计算规则与reduce一致,所以combiner也可以看作特殊的Reducer。 执行combiner操…

cocos2dx游戏--欢欢英雄传说--添加攻击按钮

接下来添加攻击按钮用于执行攻击动作。同时修复了上一版移动时的bug。修复后的Player::walkTo()函数: void Player::walkTo(Vec2 dest) {if (_seq)this->stopAction(_seq);auto curPos this->getPosition();if (curPos.x > dest.x)this->setFlippedX(t…

Yii2.0 rules常用验证规则

设置一个修改方法,但是save(),没有成功,数据修改失败,查了好久,一般情况就是不符合rules规则,而我没有设置rules规则,重新设置了一个不能为空,然后就修改成功…

HALCON示例程序gray_features.hdev提取灰度图的不同特征(area_center_gray 、elliptic_axis_gray)

HALCON示例程序gray_features.hdev提取灰度图的不同特征(area_center_gray 、elliptic_axis_gray) 示例程序源码(加注释) 读入图片 read_image (Image, ‘monkey’)二值化 threshold (Image, Region, 128, 255)分割连通域 conne…

Machine Vision Pixel Calibration~ ~ ~ ~ ~ ~ ~ ~ ~ ~

Artificial Intelligence and Robotics Research人工智能与机器人研究, 2014, 3, 25-33Published Online May 2014 in Hans. http://www.hanspub.org/journal/airrhttp://dx.doi.org/10.12677/airr.2014.32005

Ceph分布式存储系统-性能测试与优化

测试环境 部署方案:整个Ceph Cluster使用4台ECS,均在同一VPC中,结构如图: 以下是 Ceph 的测试环境,说明如下: Ceph 采用 10.2.10 版本,安装于 CentOS 7.4 版本中;系统为初始安装&…

mysql考试总结

USE school; -- 班级表 CREATE TABLE class(cid TINYINT PRIMARY KEY AUTO_INCREMENT,caption VARCHAR(20) );INSERT INTO class(caption) VALUES("三年二班"),("一年三班"),("三年一班");SELECT * FROM class;-- 老师表 CREATE TABLE teacher(t…

反思

1.说明一下ArrayList和数组的区别,并且分别写出初始化的语句: ArrayList:可以放不同的类型,长度不固定 数组:放同一类型,长度固定 数组的初始化语句:int []anew int []{}; ArrayList初始化语句:…