Open3D Pyntcloud 读取点云和网格并可视化(含txt读取方法)

本文详细介绍了使用Open3D读取点云和网格的方法,包括PLY和TXT格式,以及如何通过PyntCloud和PyVista进行操作。讲解了如何可视化、转换和保存这些数据,并展示了不同工具之间的比较和应用实例。

        本文主要介绍两种读取点云网格的方法,一种是通过open3d读取,另一种是通过pyntcloud读取,最后通过open3d进行可视化。第三种是通过pyvista读取再可视化。

Open3D

        官方文档,版本:0.13.0,安装命令:

pip install open3d

1.常见点云

import open3d as o3d
import numpy as np

ply_path = './gt-11.ply'
# 通过open3d直接读取点云
pcd = o3d.io.read_point_cloud(ply_path)

# 查看点云具体数值
pcd_value = np.asarray(pcd.points)
print(pcd_value)

# 转成三维向量
pcd_vector = o3d.geometry.PointCloud()
pcd_vector.points = o3d.utility.Vector3dVector(pcd.points)

# 手动绘制颜色
# pcd.paint_uniform_color([1, 0.706, 0])
pcd_vector.paint_uniform_color([1, 0.706, 0])

# 三维模型的坐标中心
# origin = pcd.get_center()
origin = pcd_vector.get_center()
# 坐标系
coordinate = o3d.geometry.TriangleMesh.create_coordinate_frame(size=0.2, origin=origin - 0.5)

# 可视化
o3d.visualization.draw_geometries([pcd])
o3d.visualization.draw_geometries([pcd_vector, coordinate])

# 保存
o3d.io.write_point_cloud('human.pcd', pcd)

读取

open3d.io.read_point_cloud(filename, format='auto', remove_nan_points=True, remove_infinite_points=True, print_progress=False)

        Open3D通过open3d.io.read_point_cloud()方法读取点云。参数如下:

  • filenamestr ) – 文件路径。

  • format ( str optional default='auto' ) – 输入文件的格式。如果未指定或设置为auto,则从文件扩展名推断格式。

  • remove_nan_points ( bool optional default=True ) – 如果为真,所有包含 NaN 的点将从 PointCloud 中删除。

  • remove_infinite_points ( bool optional default=True ) – 如果为 true,则所有包含无限值的点都将从 PointCloud 中删除。

  • print_progress ( bool optional default=False ) – 如果设置为 true,则在控制台中显示进度条

         除了默认参数‘auto’format还支持以下格式:

格式

描述

xyz

每一行包含[x, y, z],其中xyz是三维坐标

xyzn

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值