返回顶部
首页 > 资讯 > 后端开发 > Python >open3d 深度图和点云数据互转,RGBD和点云互转
  • 592
分享到

open3d 深度图和点云数据互转,RGBD和点云互转

python 2023-09-13 15:09:40 592人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

1. 深度图Image和点云 关键代码: (1) 深度图转点云 pcd = o3D.t.geometry.PointCloud.create_from_depth_image(depth=depth,intrinsics=intrinsic

1. 深度图Image和点云

关键代码:

(1) 深度图转点云

pcd = o3D.t.geometry.PointCloud.create_from_depth_image(depth=depth,intrinsics=intrinsic,depth_scale=5000.0,depth_max=10.0)

需要知道相机内外参数。 

(2) 点云转深度图

depth_reproj = pcd.project_to_depth_image(width=640,              height=480,              intrinsics=intrinsic,              depth_scale=5000.0,              depth_max=10.0)

 需要知道相机内外参数。 

point_cloud_to_depth.py

import open3d as o3dimport numpy as npimport matplotlib.pyplot as pltif __name__ == '__main__':    # 1. read    tum_data = o3d.data.SampleTUMRGBDImage()    depth = o3d.t.io.read_image(tum_data.depth_path)  # Image    # 2. depth Image生成PointCloud    """    create PointCloud from a depth image and a camera model.        depth (open3d.t.geometry.Image): The input depth image should be a uint16_t image.    intrinsics (open3d.core.Tensor): Intrinsic parameters of the camera. 相机内参    extrinsics (open3d.core.Tensor, optional): Extrinsic parameters of the camera. 相机外参    depth_scale (float, optional, default=1000.0): The depth is scaled by 1 / depth_scale.    depth_max (float, optional, default=3.0): Truncated at depth_max distance.    ...params.        """    intrinsic = o3d.core.Tensor([[535.4, 0, 320.1], [0, 539.2, 247.6],     [0, 0, 1]])    pcd = o3d.t.geometry.PointCloud.create_from_depth_image(depth=depth,    intrinsics=intrinsic,    depth_scale=5000.0,    depth_max=10.0)    o3d.visualization.draw([pcd])    # 3. PointCloud生成depth Image    depth_reproj = pcd.project_to_depth_image(width=640,                  height=480,                  intrinsics=intrinsic,                  depth_scale=5000.0,                  depth_max=10.0)    fig, axs = plt.subplots(1, 2)    axs[0].imshow(np.asarray(depth.to_legacy()))  # 原始depth    axs[1].imshow(np.asarray(depth_reproj.to_legacy()))  # depth->ointCloud->depth    plt.show()

2. RGBD和点云

深度图-》RGBD-》点云

需要知道相机内外参数。

point_cloud_to_rgbd.py

import open3d as o3dimport numpy as npimport matplotlib.pyplot as pltif __name__ == '__main__':        # 1. read depth and color image    device = o3d.core.Device('CPU:0')    tum_data = o3d.data.SampleTUMRGBDImage()    depth = o3d.t.io.read_image(tum_data.depth_path).to(device)    color = o3d.t.io.read_image(tum_data.color_path).to(device)    # 2. depth and color 生成rgbd    rgbd = o3d.t.geometry.RGBDImage(color, depth)        # 3. rgbd生成pcd    intrinsic = o3d.core.Tensor([[535.4, 0, 320.1], [0, 539.2, 247.6], [0, 0, 1]])    pcd = o3d.t.geometry.PointCloud.create_from_rgbd_image(rgbd,   intrinsic,   depth_scale=5000.0,   depth_max=10.0)    o3d.visualization.draw([pcd])        # 4. pcd生成rgbd    rgbd_reproj = pcd.project_to_rgbd_image(640,                480,                intrinsic,                depth_scale=5000.0,                depth_max=10.0)    # 5. view    fig, axs = plt.subplots(1, 2)    axs[0].imshow(np.asarray(rgbd_reproj.color.to_legacy()))  # 原始rgbd    axs[1].imshow(np.asarray(rgbd_reproj.depth.to_legacy()))  # rgbd->pcd->rgbd    plt.show()

来源地址:https://blog.csdn.net/jizhidexiaoming/article/details/130578591

--结束END--

本文标题: open3d 深度图和点云数据互转,RGBD和点云互转

本文链接: https://www.lsjlt.com/news/406141.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • open3d 深度图和点云数据互转,RGBD和点云互转
    1. 深度图Image和点云 关键代码: (1) 深度图转点云 pcd = o3d.t.geometry.PointCloud.create_from_depth_image(depth=depth,intrinsics=intrinsic...
    99+
    2023-09-13
    python
  • python opencv实现灰度图和彩色图的互相转换
    目录opencv灰度图和彩色图互相转换注意:附:python将灰度图转换为RGB彩色图总结opencv灰度图和彩色图互相转换 如果摄像头本来就得到3维度红外图那就不用处理直接可以用:...
    99+
    2024-04-02
  • 如何使用python opencv实现灰度图和彩色图的互相转换
    这篇文章将为大家详细讲解有关如何使用python opencv实现灰度图和彩色图的互相转换,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。opencv灰度图和彩色图互相转换如果摄像头本来就得到3维...
    99+
    2023-06-28
  • Python数据存储之XML文档和字典的互转
    目录面试题解析总结考点: 将字典转换为XML文档;将XML文档转换为字典。 面试题 1.面试题一:如何将一个字典转换为XML文档,并将该XML文档保存为文本文件。2.面试题二:如何读...
    99+
    2024-04-02
  • golang中怎么进行数据和json的相互转换
    一、什么是 JSON?JSON 全称为 JavaScript Object Notation,是一种轻量级的数据交换格式,其最大的特点是可读性很高。JSON 格式的数据易于阅读以及解析,也非常适合与服务器和客户端之间进行数据交换。二、gol...
    99+
    2023-05-14
  • golang中如何进行数据和json的相互转换
    这篇文章主要讲解了“golang中如何进行数据和json的相互转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“golang中如何进行数据和json的相互转换”吧!一、什么是 JSONJSO...
    99+
    2023-07-05
  • 数据库实践如何解决互联网架构转型中的痛点
    数据库实践如何解决互联网架构转型中的痛点,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。▍互联网数...
    99+
    2024-04-02
  • MySQL:varchar与date类型互转,对接java数据类型String和Date
    目录 问题现象: 问题分析: varchar 转 date : date 转 varchar:  解决方法: varchar 转 date : date 转 varchar: 问题现象:         今天在项目中遇到一个问题: 现象:...
    99+
    2023-09-08
    mysql mybatis java
  • ABAP和XML数据格式互相转换的方法是什么
    这篇文章主要介绍“ABAP和XML数据格式互相转换的方法是什么”,在日常操作中,相信很多人在ABAP和XML数据格式互相转换的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ABAP和XML数据格式互...
    99+
    2023-06-04
  • 服务器和云服务器数据互通吗
    云服务器和云服务器数据互通的方式可以分为两种: 同步数据:云服务器上的云服务器会实时同步云平台上的数据,这样客户端可以使用已经同步好的数据来更新应用程序。 异步数据:云服务器上的云服务器会与客户端同步数据,这样客户端可以使用客户端已经同...
    99+
    2023-10-26
    服务器 数据
  • JSP数据和JavaScirpt数据交互使用问题的一种解决方法 (转)
    JSP数据和JavaScirpt数据交互使用问题的一种解决方法 (转)[@more@]JSP数据和JavaScirpt数据交互使用问题的一种解决方法  对于web程序来说,前端(Javascript)和后端(JSP/servlet...
    99+
    2023-06-03
  • 数据管理利器:深度比较Oracle和SQL的特点
    数据管理利器:深度比较Oracle和SQL的特点 在当今信息时代,数据管理成为各行各业不可或缺的重要组成部分。在数据库领域,Oracle和SQL是两个备受关注的软件产品,它们在数据管理...
    99+
    2024-03-08
    数据库 比较 特点 sql语句
  • 服务器和云服务器数据互通吗安全吗
    云服务器和云服务器数据是可以实现安全互联互通的。在云服务器上,数据存储在云服务器上的存储设备中,而云服务器通过网络连接到客户的网络。因此,如果您在云服务器上创建了数据,那么在您的客户机上也可以访问这些数据。 同时,云服务器和云服务器数据也...
    99+
    2023-10-26
    服务器 数据
  • 如何用C语言实现将格式化数据和字符串相互转换
    这篇文章主要讲解了“如何用C语言实现将格式化数据和字符串相互转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用C语言实现将格式化数据和字符串相互转换”吧!sprintf和sscanf用...
    99+
    2023-07-05
  • 云服务器和云数据库哪个好一点
    云服务器和云数据库都是比较受欢迎的云计算服务,它们各有优缺点。 云服务器的优点: 可扩展性:云服务器具备较高的可伸缩性,可以根据需求进行快速扩展或缩小。 可靠性:云服务器提供了强大的容错能力,可以在各种极端情况下进行可靠的数据处理,保障...
    99+
    2023-10-26
    服务器 数据库
  • pythonNumPy读取和保存点云数据实现
    目录前言loadtxt函数的用法基本用法指定每一列的数据类型结合生成器使用tofile和fromfile函数前言 最近在学习点云处理的时候用到了Modelnet40数据集,该数据集总...
    99+
    2024-04-02
  • PHP、NumPy 和 Unix 系统中常见的数据类型有哪些?如何相互转换?
    在编程中,数据类型是不可或缺的一部分。不同的编程语言和操作系统中,常用的数据类型都有所不同。在本文中,我们将探讨 PHP、NumPy 和 Unix 系统中常见的数据类型,以及如何相互转换。 一、PHP中常见的数据类型 字符串(Strin...
    99+
    2023-11-10
    numpy 数据类型 unix
  • 云服务器和云数据库哪个好用一点
    云服务器和云数据库都是使用虚拟化技术来管理数据的软件,它们各有优势和特点,用户可能会根据自己的需求选择适合的产品。 在使用方面,两种产品有以下共同点: 都是基于云计算技术,提供高性能、高可用性和可靠性,同时支持多用户访问。 云服务器可以...
    99+
    2023-10-27
    好用 服务器 数据库
  • 云服务器和云数据库哪个好一点呢
    云服务器和云数据库都是使用虚拟化技术来管理数据的存储和处理的云计算服务。云服务器具有更高的可扩展性和负载均衡能力,可以让大量数据在同一个服务器上快速处理和存储,从而提升了数据处理的效率和可靠性。 云数据库是在云计算中使用数据库技术来进行数...
    99+
    2023-10-27
    服务器 数据库
  • 服务器和云服务器数据互通吗安全吗苹果
    是的,苹果公司也为云服务器提供了安全功能。云服务器通常使用加密技术来保护数据的安全性和完整性。 在使用云服务器时,用户必须确保他们存储在云服务器中的数据是安全的,并且使用的软件可以保护用户的数据免受恶意软件或病毒的攻击。此外,苹果公司还提...
    99+
    2023-10-26
    服务器 苹果 数据
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作