用Open3d保存点云,并包含强度信息
为什么用open3d:
1、pcl库需要python2,而很多库python2不支持
2、open3d是在python3环境下执行的,且支持较多对点云的操作,文档也较多
存在问题:在使用open3d的时候,发现保存的点云没有强度信息
解决方式:将强度信息保存到colors属性上
具体代码过程如下:文章来源:https://www.toymoban.com/news/detail-531763.html
注意:将强度信息保存到colors时需要转成0~1的浮点数文章来源地址https://www.toymoban.com/news/detail-531763.html
import open3d as o3d
import numpy as np
path = 'C:\\Users\Administrator\\python_code\\1560.pcd'
a = o3d.io.read_point_cloud(path, format='pcd')
aa = o3d.geometry.PointCloud()
b = np.asarray(a.points, dtype = np.float16)
c = np.asarray(a.colors, dtype = np.float16)
c[:,1:3] = c[:,1:3] * 0
c[:,0] = c[:,0]/255.0 ### note !!!
aa.points = o3d.utility.Vector3dVector(b)
aa.colors = o3d.utility.Vector3dVector(c)
path_new = 'C:\\Users\Administrator\\python_code\\1560_new.pcd'
o3d.io.write_point_cloud(path_new, aa)
aaa = o3d.io.read_point_cloud(path_new, format='pcd')
bbb = np.asarray(aaa.points)
ccc = np.asarray(aaa.colors)
## print the new data
print(bbb[0:5])
print(ccc[0:5])
到了这里,关于如何用python中Open3d库保存点云,包含强度信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!