位置: 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基本结构)

  • 小米12怎么设置nfc门禁卡(小米12怎么设置nfc)

    小米12怎么设置nfc门禁卡(小米12怎么设置nfc)

  • 华为有识别图片文字的功能吗(华为识别图片文字转化为文本手势)

    华为有识别图片文字的功能吗(华为识别图片文字转化为文本手势)

  • 抖音播放量少点赞多是什么情况(抖音播放量极少)

    抖音播放量少点赞多是什么情况(抖音播放量极少)

  • 华为p40和p30区别(华为p40和P30区别)

    华为p40和p30区别(华为p40和P30区别)

  • 电话刚拨出去就挂断对方会收到吗(电话刚拨出去就正在通话中)

    电话刚拨出去就挂断对方会收到吗(电话刚拨出去就正在通话中)

  • 华为折叠屏手机mate x什么时候发售(华为折叠屏手机价格)

    华为折叠屏手机mate x什么时候发售(华为折叠屏手机价格)

  • 手机没有话费了能不能收到短信?(手机没有话费了怎么自己充)

    手机没有话费了能不能收到短信?(手机没有话费了怎么自己充)

  • 韩剧tv怎么没有电影选项(韩剧tv怎么没有弹幕)

    韩剧tv怎么没有电影选项(韩剧tv怎么没有弹幕)

  • 苹果平板有屏幕镜像模式吗(苹果平板有屏幕镜像)

    苹果平板有屏幕镜像模式吗(苹果平板有屏幕镜像)

  • 华为nova3i和nova3手机壳通用吗(华为nova3i和nova4哪个好)

    华为nova3i和nova3手机壳通用吗(华为nova3i和nova4哪个好)

  • 苹果手机上方出现一个电话箭头(苹果手机上方出现一个锁和圆圈)

    苹果手机上方出现一个电话箭头(苹果手机上方出现一个锁和圆圈)

  • lda al20是华为什么型号(ldn al20是华为什么型号)

    lda al20是华为什么型号(ldn al20是华为什么型号)

  • 计算机软件主要分为(计算机软件主要用来描述实现数据处理的)

    计算机软件主要分为(计算机软件主要用来描述实现数据处理的)

  • 魅族16s可以升5G吗(魅族16s可以升级安卓12吗?)

    魅族16s可以升5G吗(魅族16s可以升级安卓12吗?)

  • 1997年巨型计算机型号(1997年的计算机叫什么)

    1997年巨型计算机型号(1997年的计算机叫什么)

  • 趣步人脸认证失败为什么(趣步注册中身份证被使用怎么办)

    趣步人脸认证失败为什么(趣步注册中身份证被使用怎么办)

  • 蚂蚁森林保护地需要多少能量(蚂蚁森林保护地貔貅怎么获得)

    蚂蚁森林保护地需要多少能量(蚂蚁森林保护地貔貅怎么获得)

  • 格式化后能恢复数据吗(格式化后能恢复数据吗电脑)

    格式化后能恢复数据吗(格式化后能恢复数据吗电脑)

  • gtx980m什么级别显卡

    gtx980m什么级别显卡

  • 手机怎么查qq年龄查询(手机怎么查qq年龄多长)

    手机怎么查qq年龄查询(手机怎么查qq年龄多长)

  • iphone原装耳机真假鉴别(iphone 原装耳机怎么样)

    iphone原装耳机真假鉴别(iphone 原装耳机怎么样)

  • 没有手机卡怎么破wifi(没有手机卡怎么申请微信号)

    没有手机卡怎么破wifi(没有手机卡怎么申请微信号)

  • Windows11 在启动时冻结死机怎么办?Win11启动时冻结修复图文方法(windows11启动卡在转圈圈)

    Windows11 在启动时冻结死机怎么办?Win11启动时冻结修复图文方法(windows11启动卡在转圈圈)

  • 正常工资薪金包括年终奖吗
  • 增值税发票综合服务平台错误代码35
  • 公司购买了地板可以退吗
  • 为什么征收增值税体现了量益原则
  • 退回以前年度教育附加费
  • 定额发票验旧后怎么报税
  • 签章是签字还是盖章 财务
  • 自然人转让股权给自己的公司
  • 物流企业账务流程
  • 年前买东西
  • 空白增值税专用发票丢失罚款
  • 结转损益类账户余额
  • 企业合并的会计方法选择
  • 境外企业国内签订合同如何缴纳印花税?
  • 企业厂房整改应该计入什么科目?
  • 来料加工账务处理办法
  • 金税盘非征期汇总资料未报送
  • 母公司向分公司收取管理费
  • 工会经费计税依据是上年工资还是当年工资
  • 多交增值税如何退回
  • 无票申报后开发票怎么申报
  • 存货跌价准备怎么计提
  • windows刷新桌面
  • win 11 发布
  • 银行承兑汇票贴现流程
  • 本月未认证的怎么处理
  • 防伪税控技术维护费可以全额抵扣吗
  • ajax调用php函数
  • 政策性专项资金包括哪些
  • 提示语是什么意思?
  • 工程施工暂估成本的账务处理流程
  • 销售旧设备如何开票
  • 文竹怎么养才能更旺盛浇点醋
  • vue实战技巧
  • 摊销租赁费的会计分录
  • 多开发票可以作废吗?
  • 退休返聘人员是否享受工会福利
  • 企业内部转账通知单
  • vue面试题及答案2021
  • ChatGPT及相关产品体验与研究
  • html前端技术
  • 购货没有发票
  • 误餐补助所得税处理
  • 个人代人开普票要交几个点税
  • 车辆保险费怎么入账
  • mysql 触发器
  • 销售额包括哪些会计科目
  • 退货开具红字发票说明
  • 汽车租赁费怎么赋码
  • sql2005 数据同步方法
  • 收到银行承兑汇票计入什么科目
  • 公司垫付生育津贴后,社保局未报销给公司
  • 暂估和冲暂估分录
  • 实收资本账务处理错误可以调减吗
  • 非预算类专用账户
  • 预收账款开票怎么做账
  • 暂估成本的账务处理分录
  • 以前年度损益调整在利润表中怎么填
  • 公司给员工租的宿舍如何做分录
  • 印花税多久申报一次2023
  • 员工出差的费用怎么算
  • 汇算清缴可以调整主营业务成本吗
  • 在Linux环境下mysql的root密码忘记解决方法(三种)
  • linux的head命令
  • win 8.1 preview ISO镜像安装方法简易教程
  • win8正版系统重装
  • windows超级管理员默认密码
  • centos6.5双网卡绑定
  • windows8语言栏不见了
  • linux三种用户权限
  • 使用灭火器人要站在上风口还是下风口
  • windows批量处理命令
  • 批量安装windows7补丁
  • windows下dos命令
  • angular.js
  • javascriptj
  • js类继承的例子
  • 四川国税局普通发票查询?
  • 个人所得税的网址
  • 个人所得税的工资比实际的多
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设