PCL读取点云数据报错:Failed to find match for field ‘x‘/ ‘y‘/ ‘z‘.

原因:使用matlab生成的pcd文件,点云数据是双精度类型,pcl处理的点云数据是单精度类型。

解决方案:使用matlab生成的点云坐标单精度化,然后在生成点云加以存储。

//matlab
%%根据xyz信息创建pcd文件并绘制点云图

A=xlsread('E:\点云数据\Points_cloud\Points_cloud\3+\2023-07-26-17-18-04_Velodyne-HDL-32-Data (Frame 0113).csv');

% pcData=[spotx;spoty;spotz];
ptCloud = pointCloud(singel(A(:,1:3)));
pcwrite(ptCloud, 'test.pcd', 'Encoding', 'ascii'); %将程序中的xyz数据写入pcd文件中
pc = pcread('test.pcd');
pcshow(pc); %显示点云

参考:PCL读取点云数据报错:Failed to find match for field ‘x‘/ ‘y‘/ ‘z‘._failed to find match for field 'x'._weixin_43429927的博客-CSDN博客