位置: IT常识 - 正文

立体匹配入门指南(8):视差图、深度图、点云(立体匹配原理)

编辑:rootadmin
立体匹配入门指南(8):视差图、深度图、点云

推荐整理分享立体匹配入门指南(8):视差图、深度图、点云(立体匹配原理),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:立体匹配步骤,sgbm立体匹配,立体匹配算法的研究和应用,立体匹配 综述,立体匹配算法的研究和应用,立体匹配步骤,立体匹配入门指的是什么,立体匹配的作用,内容如对您有帮助,希望把文章链接给更多的朋友!

本篇是比较简单的基础概念,刚入门的朋友可能是需要的。

视差图

三维点云

首先,我们要介绍下这三个概念。

视差(disparity)

视差 ddd 等于同名点对在左视图的列坐标减去在右视图上的列坐标,是像素单位 d=xl−xrd=x_l-x_rd=xl​−xr​立体视觉里,视差概念在极线校正后的像对里使用。

深度(depth)

深度D等于像素在该视图相机坐标系下ZZZ坐标,是空间单位。深度并不特在校正后的图像对里使用,而是任意图像都可获取深度图。

视差图(disparity map)

视差图指存储立体校正后单视图所有像素视差值的二维图像。

视差图是一张二维图像,和原图等大小视差图每个位置保存的以像素为单位的该位置像素的视差值以左视图视差图为例,在像素位置p的视差值等于该像素在右图上的匹配点的列坐标减去其在左图上的列坐标深度图(depth map)立体匹配入门指南(8):视差图、深度图、点云(立体匹配原理)

深度图指存储单视图所有像素的深度值的二维图像,是空间单位,比如毫米。

深度图是一张二维图像,和原图等大小,也就和视差图等大小深度图每个位置保存的是该位置像素的深度值深度值就是相机坐标系下的Z坐标值点云(point cloud)

点云指三维空间的三维点集合,坐标属性(X,Y,ZX,Y,ZX,Y,Z),法线属性(Nx,Ny,NzN_x,N_y,N_zNx​,Ny​,Nz​)(可选),颜色属性(R,G,BR,G,BR,G,B)(可选)

其次,为什么会有视差图和深度图呢?

我们知道,立体匹配一般是指逐像素的稠密匹配,这意味着每个像素都会得到一个视差值(包括无效值),如何存储这些视差值呢,显然以二维图的方式存储是很合适的,最大的两点优势是一方面可以通过像素坐标快速的在二维图中找到对应位置的视差值,而且和图像一样是有序的,邻域检索、视差滤波等将会变得非常方便;另一方面是可以直观的通过观察视差图和原图的对比,对视差图的质量有初步的判定。

而深度图的意义则是以更少的存储空间、有序的表达图像匹配的三维成果。更少的存储空间是因为只保存了一个深度值,而不是三维点云的三个坐标值,而深度值是可以结合像素坐标计算三维点坐标值的。有序是因为深度图和原图像素是一一对应的,所以原图的邻域信息完全继承到了深度图里。

这就是视差图和深度图的意义,视差图是立体匹配算法的产出,而深度图则是立体匹配到点云生成的中间桥梁。

视差图和深度图中间,有着一对一的转换公式: D=Bfd+(xr−xl)D=\frac {Bf}{d+(x_{0r}-x_{0l})}D=d+(x0r​−x0l​)Bf​ 其中,DDD为深度,ddd为视差,BBB为基线长度,fff为焦距(像素单位),xlx_{0l}x0l​和xrx_{0r}x0r​分别为左右视图主点的列坐标。,另一个较为熟知的公式是 D=BfdD=\frac {Bf}{d}D=dBf​ 这是在左右视图主点的列坐标相同的特殊情况,比如主点都在中心。

深度图计算相机坐标系下的点云,也有着简单的公式: Z=DX=D(x−xl)fY=D(y−yl)f\begin{aligned} Z &= D\\ X &= \frac {D(x-x_{0l})}{f}\\ Y &= \frac {D(y-y_{0l})}{f} \end{aligned}ZXY​=D=fD(x−x0l​)​=fD(y−y0l​)​​ 其中,x,yx,yx,y为像素的列坐标和行坐标,xlx_{0l}x0l​和yly_{0l}y0l​为主点的像素坐标。

常见问答: 问:为什么我从.png格式的视差图里读取到的视差值和真实值有很大差异? 答: 我们要先搞清楚,视差图是如何存储的。通常而言,我们是把二维视差图以图像格式存储,常见的格式有png、tif、pfm等,但这些图像格式存储的数据类型是有区别的,其中png只能存储整数,而tif和pfm则可以存储小数。而显然准确的视差值必然是浮点型的小数,所以存储为tif和pfm可以原值无损存储,而存储为png必然会损失精度,所以有的代码比如opencv会把得到的浮点型视差值乘以16倍取整,存储到png里,这样存储视差值的精度变为1/16,对于这种情况我们在读取png后要先除以16才是真实视差值,且视差会有阶梯分层现象。

那有同学就问,既然这样为什么要存储png呢?是因为目前主流的图像软件,不支持直接看浮点格式的tif和pfm,存储为png可以更好的观看视差图,当然要是实际生产使用,是必然不建议存储为png的,用来查看视差结果是可以的。

还有人会直接把视差值拉伸或者压缩到0~255,存储到png或bmp等存储整数的格式中,这样的视差图只能用来观看视差效果,没有其他作用,比如我的代码里的存储方式。

问:极线像对下的深度图和原图的深度图是一样的吗?如何转换? 答: 不一样,因为深度图是在视图所在的相机坐标系下的,所以和相机坐标系强挂钩,极限校正后的左视图和原始的左视图是不一样的相机坐标系,所以它们的深度图是不一样的。

对于极线像对左视图某像素ppp,通过单应变换 HHH 转换到原左视图上,得到原图上的像素坐标 qqq。将ppp的相机坐标系坐标通过一个旋转 RRR 变换到原左视图的相机坐标系坐标,得到 qqq 的深度。HHH和RRR在极线校正步骤可以获取(极线校正的必然产出)。
本文链接地址:https://www.jiuchutong.com/zhishi/299862.html 转载请保留说明!

上一篇:大语言模型集成工具 LangChain(大语言模型集成工具)

下一篇:SpringBoot【基础篇】---- 基于SpringBoot实现SSMP整合(springboot基本结构)

  • 2021淘宝天猫双十一红包活动什么时候开始(淘宝天猫双十一交易额是真的吗)

    2021淘宝天猫双十一红包活动什么时候开始(淘宝天猫双十一交易额是真的吗)

  • 华为nova9pro多大屏幕(华为nova9pro256g)

    华为nova9pro多大屏幕(华为nova9pro256g)

  • 小米civi怎么设置图标大小(小米civi怎么设置地震预警)

    小米civi怎么设置图标大小(小米civi怎么设置地震预警)

  • 荣耀30pro和荣耀30s的区别有哪些地方(荣耀30pro和荣耀30s哪个好)

    荣耀30pro和荣耀30s的区别有哪些地方(荣耀30pro和荣耀30s哪个好)

  • 苹果11能微信分身的吗(苹果11微信分身版ios下载安装)

    苹果11能微信分身的吗(苹果11微信分身版ios下载安装)

  • 苹果11照片怎么涂鸦(苹果11照片怎么导入电脑)

    苹果11照片怎么涂鸦(苹果11照片怎么导入电脑)

  • 华为mate30省电怎么设置(华为mate30超级省电没反应)

    华为mate30省电怎么设置(华为mate30超级省电没反应)

  • a++和++a的区别(cla和a的区别)

    a++和++a的区别(cla和a的区别)

  • gtx770什么水平

    gtx770什么水平

  • 抖音解封需要多久(抖音解封多少钱联系人)

    抖音解封需要多久(抖音解封多少钱联系人)

  • 小米手环2变暗还有救吗(小米手环2变暗了还有什么用途)

    小米手环2变暗还有救吗(小米手环2变暗了还有什么用途)

  • iphone 拦截记录哪去了(iphone 拦截记录短信哪去了)

    iphone 拦截记录哪去了(iphone 拦截记录短信哪去了)

  • 四线网线和八线区别(四线网线和八线网线可以连接使用吗)

    四线网线和八线区别(四线网线和八线网线可以连接使用吗)

  • 苹果手机的系统叫什么(苹果手机的系统数据为什么那么大)

    苹果手机的系统叫什么(苹果手机的系统数据为什么那么大)

  • 无网络覆盖是什么意思(无网络覆盖怎么解决?)

    无网络覆盖是什么意思(无网络覆盖怎么解决?)

  • 小米6x开发者选项在哪里(小米6x开发者选项在哪)

    小米6x开发者选项在哪里(小米6x开发者选项在哪)

  • 拼多多怎样直接免拼单(拼多多怎样直接提现到微信)

    拼多多怎样直接免拼单(拼多多怎样直接提现到微信)

  • 拼多多评论怎么置顶(拼多多评论怎么置顶第一)

    拼多多评论怎么置顶(拼多多评论怎么置顶第一)

  • 抖音能不能投屏到电视(抖音能不能投屏到小米电视)

    抖音能不能投屏到电视(抖音能不能投屏到小米电视)

  • vivos1有没有人脸解锁(vivos1手机有没有人脸识别功能)

    vivos1有没有人脸解锁(vivos1手机有没有人脸识别功能)

  • 怎么看5g时代的到来(5g在哪里看)

    怎么看5g时代的到来(5g在哪里看)

  • 小米6恢复的照片在哪找(小米手机恢复照片后在哪里可以找到)

    小米6恢复的照片在哪找(小米手机恢复照片后在哪里可以找到)

  • 斯卡夫塔山中的传统农舍,冰岛瓦特纳冰川国家公园 (© Jarcosa/Getty Images)(塔卡夫斯基镜子)

    斯卡夫塔山中的传统农舍,冰岛瓦特纳冰川国家公园 (© Jarcosa/Getty Images)(塔卡夫斯基镜子)

  • spell命令  建立拼写检查程序(split命令用法)

    spell命令 建立拼写检查程序(split命令用法)

  • Vue 3.x基础(vue3.0用法)

    Vue 3.x基础(vue3.0用法)

  • 完税证明是可以抵扣吗
  • 企业建厂房购进材料可以抵扣吗
  • 技术转让是指
  • 一般户用途可以是往来款吗
  • 工会经费如何申报?
  • 固定资产不能抵扣进项税额
  • 工资薪金所得应纳税所得额
  • 抬头 个人
  • 外汇资本金入账要求
  • 项目部租房办公应计入什么费用
  • 应收账款管理制度设计毕业设计
  • 电力工程公司岗位职责
  • 12月结账写本年累计吗
  • 财产清查的种类有哪些
  • 小规模定期定额申报
  • 什么企业做汇算清缴报告
  • 租赁合同印花税计税依据含税吗
  • 购买金税盘需要法人去税务局进行信息采集吗
  • 退役士兵增值税优惠申报方法
  • 关联方债权投资与权益投资比例
  • 其他应付款的会计英文
  • 地税局完税证明去哪里办理
  • 企业购入交易性金融资产支付的交易费用
  • 一次性收取一年服务费怎么确定收入
  • 飞机票的保险费可以退吗
  • 固定资产一次性扣除后第二年账务处理
  • 贷款逾期了利息和罚息可以不还吗
  • php数组函数输出《咏雪》里有多少"片"字
  • PHP:stream_set_chunk_size()的用法_Stream函数
  • 如何选择一款适合自己家庭的凉席
  • php数据类型分为哪几类
  • 银行转来委托收款
  • php框架symfony
  • 研发支出属于哪个表
  • 个人转让土地使用权可以开专票吗
  • phalcon model在插入或更新时会自动验证非空字段的解决办法
  • php自动部署
  • 逐帧flash动画
  • 锅炉维修项目
  • 银行查询余额
  • 印花税的营业账簿是什么意思
  • 开票软件怎么增加开票员
  • 预付和挂账怎么做分录
  • 公司抵押贷款的钱,可以转到私人账号
  • 预付账款后收到货物会计分录
  • 交通费中的高速费指什么
  • 代收往来款的会计分录
  • 电脑管理费用入什么账户
  • 个税代扣代缴手续费返还需要缴纳增值税吗
  • mysql binlog dump
  • 变卖固定资产的账务处理
  • 企业如何代员工做个税汇算清缴
  • 利润分配贷方余额怎么处理
  • 出租车费用分录
  • 规划设计费入什么科目
  • 久期缺口计算公式解析
  • 内部审计人员独立性
  • 创建的sql语句
  • windows下命令
  • 怎样u盘安装系统软件
  • win7系统如何卸载office2007
  • windows 8怎么样
  • win7系统更新怎么关闭
  • Windows Server 8 ADDS轻松几步搞定密码个性化设置
  • win10资源管理器快捷键
  • layui nodejs
  • css盒子模型示意图
  • html5图文混排
  • qt配置opengl
  • node.js底层原理
  • vue缓存数据
  • 深入解读2023年一号文件
  • js生成页面
  • unity-chan
  • 如何用u盘重装电脑系统
  • js性能优化方法
  • 减免性质代码怎么填
  • 教师职称申报申请
  • 纳税申报期过了怎么处理
  • 税收分类分级管理后如何开展风险管理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设