一、深度图的概念

1.深度图像的像素值反映场景中物体到相机的传感器平面的距离,获取深度图像的方法=被动测距传感+主动深度传感。
2.深度图像是物体的三维表示形式,一般通过立体照相机或者TOF照相机获取。如果具备照相机的内标定参数,可将深度图像转换为点云。
3.深度图像的获取方法有激光雷达深度成像法、计算机立体视觉成像、坐标测量机法、莫尔条纹法、结构光法等。
4.深度图往往以灰度形式或者伪彩色形式表现,但它和传统相机的到灰度图以及RGB图有本质的区别。

二、深度图和点云的数据存储

1.3D相机数据的数据存储形式,存储次序往往和传感器的像素排列一致

2.点云的数据存储形式,每行对应一个点的X/Y/Z坐标

三、TOF 3D相机数据中距离Z的计算关系

1.相机和光源位置重合


2.相机和光源位置不重合


对于原始的TOF相机数据,距离值指光源经过物体反射到达相机的距离L,光源和相机位置不重合时,按上面的方式计算物体的Z坐标。

四、 深度图和点云的转换代码示例(考虑光源位置的情况)

五、点云重投影到深度图

• 地面“调平”——通过点云数据调整,修正相机镜头和地面不平行
• 识别图像的视角归一化
• RGBD融合

1.使用点云重投影的运算过程
(1)原始深度图>>>点云
(2)点云通过坐标变换重投影到深度图
2.注意问题
(1)遮挡问题
由于遮挡,映射到相同像素坐标的物体在深度图中只保留最近物体
(1)透射问题
点云稀疏出发生“透射”现象,造成错误结果

3.解决方法

# !/usr/bin/python3
# coding=utf-8import numpy as npCAM_WID, CAM_HGT = 640, 480  # 重投影到的深度图尺寸
CAM_FX, CAM_FY = 795.209, 793.957  # fx/fy
CAM_CX, CAM_CY = 332.031, 231.308  # cx/cyEPS = 1.0e-16# 加载点云数据
pc = np.genfromtxt('pc_rot.csv', delimiter=',').astype(np.float32)# 滤除镜头后方的点
valid = pc[:, 2] > EPS
z = pc[valid, 2]# 点云反向映射到像素坐标位置
u = np.round(pc[valid, 0] * CAM_FX / z + CAM_CX).astype(int)
v = np.round(pc[valid, 1] * CAM_FY / z + CAM_CY).astype(int)# 滤除超出图像尺寸的无效像素
valid = np.bitwise_and(np.bitwise_and((u >= 0), (u < CAM_WID)),np.bitwise_and((v >= 0), (v < CAM_HGT)))
u, v, z = u[valid], v[valid], z[valid]# 按距离填充生成深度图,近距离覆盖远距离
img_z = np.full((CAM_HGT, CAM_WID), np.inf)
for ui, vi, zi in zip(u, v, z):img_z[vi, ui] = min(img_z[vi, ui], zi)  # 近距离像素屏蔽远距离像素# 小洞和“透射”消除
img_z_shift = np.array([img_z, \np.roll(img_z, 1, axis=0), \np.roll(img_z, -1, axis=0), \np.roll(img_z, 1, axis=1), \np.roll(img_z, -1, axis=1)])
img_z = np.min(img_z_shift, axis=0)# 保存重新投影生成的深度图dep_rot
np.savetxt('dep_rot.csv', img_z, fmt='%.12f', delimiter=',', newline='\n')# 加载刚保存的深度图dep_rot并显示
import matplotlib.pyplot as pltimg = np.genfromtxt('dep_rot.csv', delimiter=',').astype(np.float32)
plt.imshow(img, cmap='jet')
plt.show()

TOF深度相机数据到点云转换(一)相关推荐

  1. 一文览尽ToF深度相机技术

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 摘要:现行专业级或消费级的3D相机所采用的三角法(Triangulation)和飞时法(Time-of ...

  2. 一文读懂TOF深度相机技术原理--TI-Tintin-OPT8241二次开发和应用系列--Theory Level

    一文读懂TOF深度相机技术原理--TI-Tintin-OPT8241二次开发和应用系列--Theory Level 转载请附上出处,本文链接:https://www.cnblogs.com/pans0 ...

  3. RGB-D、TOF深度相机的原理

    转载:https://www.cnblogs.com/sxy370921/p/11633568.html RGB-D.TOF相机的原理 一.原理 RGB-D 图像中的rgb图片提供了像素坐标系下的x, ...

  4. [计算机毕业设计]深度相机稀疏点云分类

    前言

  5. PCL——从点云到网格(一)利用OpenNI2和深度相机生成点云

    最近做毕设,学习了一下PCL的使用(C++).这几篇博客就记录一下自己做毕设的时候利用深度相机得到点云,最后生成Mesh的过程.效果应该不是最好的,但是先把流程记录下来,自己下次看的时候就知道大体流程 ...

  6. 【深度相机系列二】深度相机分类之飞行时间法(TOF)

    说明:文中所举例的产品比较早,读者把重点放在学习原理上就好. 目前的深度相机根据其工作原理可以分为三种:TOF.RGB双目.结构光. 1. TOF简介 飞行时间是从Time of Flight直译过来 ...

  7. ROS下使用乐视RGB-D深度相机/Orbbec Astra Pro显示图像和点云

    ROS下使用乐视RGB-D深度相机显示图像和点云 1. 正常安装 1.1 安装依赖 1.2 建立工作空间 1.3 克隆代码 1.4 Create astra udev rule 1.5 编译源码包 1 ...

  8. 深度相机(二)——飞行时间(TOF)

    深度相机按照深度测量原理不同,一般分为:飞行时间法.结构光法.双目立体视觉法.本文就来说一说飞行时间法. 一.TOF简介 飞行时间是从Time of Flight直译过来的,简称TOF.其基本原理是通 ...

  9. 深度相机原理揭秘之飞行时间法(TOF)

    版权声明:本文为博主原创文章,未经博主允许不得转载.违者必究. https://blog.csdn.net/electech6/article/details/78349107 </div> ...

最新文章

  1. 如何用shell脚本编译java工程
  2. PHP使用header方式实现文件下载
  3. 在线maven托管_使用Amazon s3托管您的Maven工件
  4. 二叉树的进阶操作---(求二叉树中所有结点个数,求叶子结点个数,求第k层结点个数;在二叉树中查找某一结点;层序遍历;判断是否为完全二叉树)
  5. RT5350原厂SDK及AP移植步骤详解
  6. 网页开发部署-开发工具MyEclips+Tomcat+mysql
  7. vue 文件转换二进制_vue项目将file转换成二进制流
  8. Oracle 中启用 scott 用户 的方法
  9. Qt实践录:非窗体代码片段
  10. bad interpreter: No such file or directory解决
  11. html tab键自动填充,HTML tabindex — TAB按键操作
  12. 全球名校AI课程库(36)| 辛辛那提大学 · 离散数学课程『MATH1071 Discrete Math』
  13. 斗鱼实名认证 mysql_斗鱼平台-实名认证(绑定、认证失败、身份证认证)
  14. 一个440MHz的 VGA电路设计与仿真
  15. html5文字云在线制作,一键生成高大上的文字云,这5个工具值得推荐。
  16. ArcBlock 将作证支持美国华盛顿州区块链立法 | ABT 活动
  17. 科恒khs202温控器使用说明书_WS203数字显示温控器使用说明书
  18. docker目录 /var/lib/docker/containers 日志清理
  19. linux 备份iphone,备份苹果硬盘的数据
  20. 黑马程序员--C语言基础之--变量、内部函数与外部函数

热门文章

  1. 等保-信息安全等级保护的等级划分原则
  2. 让 IDA 的 F5 插件失效
  3. 外媒评过去十年 100 款最酷电子产品;GitHub计划在中国开设分公司;币圈大佬何一、孙宇晨微博账号疑似被封杀 | EA周报...
  4. 判断一个数是否为平方数
  5. 【洛古 P1315】 [NOIP2011 提高组] 观光公交
  6. 一加9pro 鸿蒙系统,Mate40Pro对比一加9Pro:差距无法接受
  7. AcWing 790.数的三次方根
  8. 从网页采集图片,生成PPT文件
  9. 微信小程序--云开发
  10. 海量监控数据处理之道(一):APM指标计算优化