from pclpy import pcl
import numpy as np
cloud = pcl.PointCloud.PointXYZRGB()
pcl.io.loadPCDFile('chuli.pcd', cloud)
print('读取点云的点数为:', cloud.size())
print('前10个点的坐标为为:', np.asarray(cloud.xyz)[:10])
#可视化
viewer = pcl.visualization.PCLVisualizer("3D viewer")
viewer.setBackgroundColor(0, 0, 0)
rgb = pcl.visualization.PointCloudColorHandlerRGBField.PointXYZRGB(cloud)
viewer.addPointCloud(cloud, rgb, "sample cloud")
viewer.setPointCloudRenderingProperties(0, 1, "sample cloud")
while not viewer.wasStopped():
viewer.spinOnce(10)
两种情况:
1、出现Failed to find match for field 'rgba'.其实是因为输入的pcd文件头和定义不一致;
2、版本不一致,从pcl-1.9以后,保存的pcd文件中rgb字段是以uint来存储,而之前的版本都是用float形式来存储。
如有帮助,还请帮忙点下采纳!感谢!
可以参考 Failed to find match for field 'rgb'_chennuo0125-HIT的博客-CSDN博客
望采纳!
拒绝回答百度能搜到的问题