1. 一般使用realsense时会保存视频序列,当保存深度图像时,需要注意保存的图像矩阵的格式,不然可能造成深度值的丢失。

  2. 在众多图像库中,一般会使用opencv中的imwrite() 函数进行深度图像的保存。

  3. 一般深度图像中深度值的单位是mm,因此一般使用np.uint16作为最终数据格式保存。

例子:

import numpy as np
import cv2def fun1(im):im=np.asarray(im,np.float32)return im
def fun2(im):im=np.asarray(im,np.uint16)return im
if __name__ == '__main__':#set a depth map using np.randomim=np.random.randint(100,800,size=(96,96))#1. float saveim1=fun1(im)cv2.imwrite('float_saved.png',im1)im2=fun2(im)cv2.imwrite('uint_saved.png',im2)

重新读取保存的图像:

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
def load_image(filename):im=Image.open(filename)return im
if __name__ == '__main__':im1=load_image('float_saved.png')im2=load_image('uint_saved.png')plt.subplot(121)plt.imshow(im1)plt.subplot(122)plt.imshow(im2)plt.show()

结果显示:
左边是float,右边是uint16保存方法,左边数据出现了数据压缩,被压缩在0-255之间,而右边值正常。

附上完整的realsense采集深度图像的代码

import pyrealsense2 as rs
import numpy as np
import cv2class realsense_im(object):def __init__(self,image_size=(640,480)):self.pipeline = rs.pipeline()config = rs.config()config.enable_stream(rs.stream.depth, image_size[0], image_size[1], rs.format.z16, 30)config.enable_stream(rs.stream.color, image_size[0], image_size[1], rs.format.bgr8, 30)self.profile = self.pipeline.start(config)def __get_depth_scale(self):depth_sensor = self.profile.get_device().first_depth_sensor()depth_scale = depth_sensor.get_depth_scale()return depth_scaledef get_image(self):frames = self.pipeline.wait_for_frames()depth_frame = frames.get_depth_frame()color_frame = frames.get_color_frame()depth_image = np.asarray(depth_frame.get_data(), dtype=np.float32)color_image = np.asarray(color_frame.get_data(), dtype=np.uint8)color_image_pad = np.pad(color_image, ((20, 0), (0, 0), (0, 0)), "edge")depth_map_end = depth_image * self.__get_depth_scale() * 1000return depth_map_end,color_imagedef process_end(self):self.pipeline.stop()rs_t=realsense_im()i=0
try:while True:depth_map,rgb_map=rs_t.get_image()print  rgb_map.shapecv2.imwrite('./examples/savefig/rgb/image_r_{}.png'.format(str(i).zfill(5)), rgb_map)i+=1cv2.imwrite('./examples/savefig/depth/Tbimage_d_{}.png'.format(str(0).zfill(5)), np.asarray(depth_map,np.uint16))cv2.namedWindow('RGB Example', cv2.WINDOW_AUTOSIZE)cv2.imshow('RGB Example', rgb_map)key = cv2.waitKey(1)# Press esc or 'q' to close the image windowif key & 0xFF == ord('q') or key == 27:cv2.destroyAllWindows()breakfinally:pass

realsense深度图像保存方法相关推荐

  1. realsense深度图像读取对齐与保存

    图像采集 realsense直接读取出来的彩色图片和深度图片是没有对齐的,读取出来的两张图片像素之间没有一一对应.但是一般使用两张图片是需要对齐的,并且直接利用深度信息. 以下程序为了更加方便的采集数 ...

  2. 深度图像基础知识(二)

    在计算机视觉系统中,三维场景信息为图像分割.目标检测.物体跟踪等各类计算机视觉应用提供了更多的可能性,而深度图像(Depth map)作为一种普遍的三维场景信息表达方式得到了广泛的应用.深度图像的每个 ...

  3. PCL 由点云生成深度图像

    前言:在电脑上的pcl1.8.0版本可能是由于版本问题,无法在窗口显示深度图像,但是深度图像确实是生成了的,可以通过一个API将深度图像保存为一个png格式的图片然后查看. 该函数如下: //save ...

  4. 动态捕捉(四)深度图像基础知识

    第一部分: 深度图像(depth image)也被称为距离影像(range image),是指将从图像采集器到场景中各点的距离(深度)作为像素值的图像,它直接反映了景物可见表面的几何形状.深度图像经过 ...

  5. 在ROS下利用OpenCV的Mat类,将激光点云展开为深度图像(从零开始,超详细)

    激光雷达3D目标检测任务需要将地面滤除,滤除地面的方法多种多样:基于深度学习.基于栅格.基于平面拟合.基于条件随机场.基于深度图像等等.关于将点云转化为深度图像,PCL库中有相关函数,但使用起来有一定 ...

  6. Realsense SR300 和 R200 提取深度图像并保存

    本博客适用于SR300和R200的深度图像和RGB图像的提取. OpenCV的安装 首先要安装opencv,在这里不做多讲,网上有很多教程. SDK的安装 Realsense SR300 和 R200 ...

  7. python鱼眼图像识别_一种融合鱼眼图像与深度图像的动态环境视觉里程计方法与流程...

    本发明涉及移动机器人同步定位与地图构建(SLAM)技术领域,尤其是适用于动态环境的基于鱼眼图像与深度图像的视觉里程计方法. 背景技术: 定位技术是移动机器人实现各项复杂任务的技术基础.里程计便是一类简 ...

  8. python opencv 从Intel Realsense D435 视频流中读取并显示帧,按下空格将图像保存到指定文件夹,按下回车自动以一定时间间隔保存图像至指定文件夹

    参考文章1:opencv之读入一幅图像,显示图像以及如何保存一副图像,基础操作 参考文章2:python-OpenCV2中 cv2.VideoCapture(),read(),waitKey()的使用 ...

  9. OpenCV中保存不同深度图像的技巧

    什么是图像深度?   很多人开始学习OpenCV之后,接触的几个方法就包括imwrite函数,而且很快知道需要传入一个ndarray类型的mat对象作为实参,常规代码如下: imwrite(" ...

最新文章

  1. Oracle 一些常用的数据字典
  2. 全面容器化之后,来电科技如何实现微服务治理?
  3. linuxShell之一 文件读取 循环与分支
  4. python __call__
  5. CentOS防止黑客攻击Linux服务器实战演练
  6. 理解Heap Profling名词-Shallow和Retained Sizes
  7. dat image 微信_电脑微信image文件夹下的dat文件怎么打开?
  8. 我做实施交付那些年——说点废话(1)
  9. 自定义dns服务器是什么,自动分配DNS服务器和手动设置有什么区别?
  10. 概率图模型(D分离)
  11. 联想拯救者2020R7000双系统装机记录_自用
  12. 书摘—拆掉思维里的墙
  13. UltraEdit 注册码
  14. C++入门到精通(xcode IDE)
  15. 公派访问学者博士后语言考试WSK(PETS5)介绍及常见问题
  16. RabbitMQ中重试机制的坑
  17. 停简单电子优惠系统_停简单app下载
  18. php的动态性体现在哪儿,动态异质性面板的PMG估计
  19. 保姆级教程:硬核图解Transformer
  20. 华为突破ERP系统封锁!任正非:今天软件仍落后但终会强大

热门文章

  1. 墨者学院_Linux硬盘文件分析取证(恢复文件)
  2. java 单例类_Java单例类
  3. 全球与中国隔音窗户市场深度研究分析报告(2021)
  4. 基于UDP的可靠性传输协议-KCP简介
  5. 恭喜不能发财,搞定大厂面试才行:动态规划问题的思路解析
  6. jQuery实现图片轮播小练习
  7. vmware exsi 自动快照
  8. Java高级--Java常用类
  9. 隐藏u盘(启动盘)的盘符分区(非本地方案)--连接到任何电脑都隐藏不显示
  10. 计算机应用教研活动内容,2017年第一学期计算机组第八周教研活动记录