作者 by Tianzhi Jia / 2022-05-08 / 暂无评论 / 242 个足迹
- 本教程介绍Open3D如何读取和写入基本数据结构。
点云
print("Testing IO for point cloud ...")
sample_pcd_data = o3d.data.PCDPointCloud()
pcd = o3d.io.read_point_cloud(sample_pcd_data.path)
print(pcd)
o3d.io.write_point_cloud("copy_of_fragment.pcd", pcd)
- 默认情况下,Open3D尝试通过文件扩展名推断文件类型。支持以下点云文件类型:
格式 | 描述 |
---|
xyz | 每行包含[x,y,z] ,其中x ,y ,z 是3D坐标 |
xyzn | 每行包含[x,y,z,nx,ny,nz] ,其中nx ,ny ,nz 是法向量 |
xyzrgb | 每行包含[x,y,z,r,g,b] ,其中r ,g ,b 是在[0, 1] 范围内的浮点数 |
pts | 第一行是表示点的数量的整数。后续行遵循以下格式之一:[x,y,z,i,r,g,b] ,[x,y,z,r,g,b] ,[x,y,z,i] 或[x,y,z] ,其中x ,y ,z ,i 是double 类型,r ,g ,b 是uint8 类型 |
ply | 请参阅多边形文件格式,ply文件可以同时包含点云和Mesh数据 |
pcd | 请参阅点云数据 |
- 也可以显式指定文件类型。在这种情况下,文件扩展名将被忽略。
pcd = o3d.io.read_point_cloud("../../test_data/my_points.txt", format='xyz')
Mesh
print("Testing IO for meshes ...")
knot_data = o3d.data.KnotMesh()
mesh = o3d.io.read_triangle_mesh(knot_data.path)
print(mesh)
o3d.io.write_triangle_mesh("copy_of_knot.ply", mesh)
- 与点云数据结构相比,Meshesh具有定义3D表面的三角形。
- 默认情况下,Open3D尝试通过文件扩展名推断文件类型.支持以下Mesh文件类型:
图像
print("Testing IO for images ...")
image_data = o3d.data.JuneauImage()
img = o3d.io.read_image(image_data.path)
print(img)
o3d.io.write_image("copy_of_Juneau.jpg", img)
- 使用
print(img)
可轻松显示图像的大小。 jpg
和png
两者图像文件都支持。
独特见解