PCL读取点云数据报错:Failed to find match for field ‘x’/ ‘y’/ ‘z’.
解决方案来源:https://www.mathworks.com/matlabcentral/answers/400229-pcd-file-written-generated-from-matlab-not-being-read-by-pcl
问题描述
由matlab生成ply或pcd格式的点云文件后,想使用PCL对点云进行处理,但在读取点云时,PCL报错Failed to find match for field ‘x’/ ‘y’/ ‘z’.
原因
Matlab中生成的点云三维坐标为双精度类型,而PCL处理的点云数据一般为单精度类型。
解决方法
将matlab生成的三维坐标首先单精度化,假设存储三维坐标的矩阵叫做dianyun,首先single(点云),再生成点云加以存储。
// matlab
ptCloud=pointCloud(singel(dianyun));
pcwrite(ptcloud,'D:\文件名')