I have intensity values with LIDAR information and I'd like to pass it into the PCD variable. I'm looking at the following code example, but I'm not sure how to expand this to include intensity. Previously I wrote out csv's to .xyzrgb files to pass intensity, but I'm benefiting from the binary vs ascii format.
# Pass xyz to Open3D.PointCloud and visualize
pcd = PointCloud()
pcd.points = Vector3dVector(xyz)
write_point_cloud("../../TestData/sync.ply", pcd)
How about trying this?
intensity = np.zeros((np.size(mesh_x),3))
intensity[:,0] = np.reshape(intensity_from_velodyne,-1)
intensity[:,1] = np.reshape(intensity_from_velodyne,-1)
intensity[:,2] = np.reshape(intensity_from_velodyne,-1)
pcd.colors = Vector3dVector(intensity)
Thanks! I know you're focused on RGBD images, but it might be nice to support a 1d array for colors. There's a decent penalty for storing 6 columns of data, instead of 4.
That's true. We are planning potential upgrade on the data structure. I will put it to my list.
Hi @syncle, any updates on the data structure? This is a very useful feature for lidar based pointclouds. Any fields beyond xyzrgb are silently ignored when importing ply files. Our team is using o3d more and more but this is a particular pain point when moving away from pcl. Thanks!
@yxlao do you think we could take care of this?
Most helpful comment
Hi @syncle, any updates on the data structure? This is a very useful feature for lidar based pointclouds. Any fields beyond
xyzrgbare silently ignored when importingplyfiles. Our team is usingo3dmore and more but this is a particular pain point when moving away frompcl. Thanks!