isl-org / Open3D

Open3D: A Modern Library for 3D Data Processing
http://www.open3d.org
Other
11.53k stars 2.32k forks source link

Add support for IO for e57 and las files #6691

Open ssheorey opened 8 months ago

ssheorey commented 8 months ago

Checklist

Proposed new feature or change

Add support for IO for e57 and las files

References

e57:

las and laz:

Additional information

No response

dancergraham commented 3 months ago

As a workaround with the python library pye57 (pip install pye57) you can do this:


import numpy as np, open3d as o3d  # cannot use numpy 2.0 or greater with open3d 18.0 or lower
import pye57

pc = pye57.E57(r"bunnyFloat.e57")  # put your e57 file here
np_arrays = pc.read_scan(0, ignore_missing_fields = True)  # repeat for multiple scans
xyz = np.zeros((np.size(np_arrays["cartesianX"]), 3))
xyz[:, 0] = np.reshape(np_arrays["cartesianX"], -1)
xyz[:, 1] = np.reshape(np_arrays["cartesianY"], -1)
xyz[:, 2] = np.reshape(np_arrays["cartesianZ"], -1)
pcd = o3d.geometry.PointCloud()
pcd.points = o3d.utility.Vector3dVector(xyz)

# Visualise the pointcloud
pcd.paint_uniform_color([0.5, 0.5, 0.5]) 
pcd.estimate_normals()
pcd.orient_normals_consistent_tangent_plane(1)
o3d.visualization.draw([pcd])