Open3D 三维数据类型
点云:某个坐标系下的点数据集,每个点包括三维坐标X,Y,Z、颜色、分类值、强度值、时间等信息。
储存格式:pts、LAS、PCD、xyz、asc、ply等
Mesh:多边形网格,是计算机图形学中用于各种不规律物体建模的一种数据结构。
储存格式:obj、stl、ply等
数模:三维数字模型是通过三维制作软件通过虚拟三维空间构建出具有三维数据的模型。
储存格式:IGS、part、model、IGES等
Open3D io
o3d.data.xxx()会实例化对应的数据类,具有data_root, download_dir, extract_dir, prefix, path等属性。其中path数据用于数据初始化。
o3d.data.JuneauImage(): 实例化Open3D 图像数据
o3d.data.PCDPointCloud(): 实例化Open3D 点云数据
o3d.data.KnotMesh(): 实例化Open3D Mesh数据
如果是自己获得的三维数据或者图像 ,可以直接使用 o3d.io.read_xxx(“文件路径”)来读取。
image io
o3d.io.read_image 读取Open3D 图像数据
o3d.io.write_image 保存Open3D 图像数据
import open3d as o3d
if __name__ == "__main__":
img_data = o3d.data.JuneauImage()
print(f"Reading image from file: Juneau.jpg stored at {img_data.path}")
img = o3d.io.read_image(img_data.path)
#img =o3d.io.read_image('JuneauImage.jpg')
print(img)
print("Saving image to file: copy_of_Juneau.jpg")
o3d.io.write_image("copy_of_Juneau.jpg", img)
point cloud io
o3d.io.read_point_cloud 读取Open3D 点云数据
o3d.io.write_point_cloud 保存Open3D 点云数据
import open3d as o3d
if __name__ == "__main__":
pcd_data = o3d.data.PCDPointCloud()
print(
f"Reading pointcloud from file: fragment.pcd stored at {pcd_data.path}")
pcd = o3d.io.read_point_cloud(pcd_data.path)
print(pcd)
print("Saving pointcloud to file: copy_of_fragment.pcd")
o3d.io.write_point_cloud("copy_of_fragment.pcd", pcd)
triangle mesh io
o3d.io.read_triangle_mesh 读取Open3D Mesh数据
o3d.io.write_triangle_mesh 保存Open3D Mesh数据
import open3d as o3d
if __name__ == "__main__":
knot_data = o3d.data.KnotMesh()
print(f"Reading mesh from file: knot.ply stored at {knot_data.path}")
mesh = o3d.io.read_triangle_mesh(knot_data.path)
print(mesh)
print("Saving mesh to file: copy_of_knot.ply")
o3d.io.write_triangle_mesh("copy_of_knot.ply", mesh)