PCL:“Failed to find match for field ‘intensity‘. ” 解决方案

目录

    • 1 问题描述
    • 2 解决方案
    • 3 CC转换的pcd文件头和代码转换的文件头对比

1 问题描述

将带有强度信息的las点云在CloudCompare中转换为pcd格式,pcl无法正常读入转换后的pcd点云,并提示错误

Failed to find match for field ‘intensity’.


PCL中有PointXYZI类型的点云格式

pcl::PointCloud<pcl::PointXYZI>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZI>);

所以,并不是PCL不能读取pcd点云的强度信息,而是不能读取使用CC转换后的pcd点云的强度信息

2 解决方案

解决方案很简单,只需代码实现las向pcd转换即可
前提是需要配置好LAStools库和PCL库,配库步骤和转换代码请参考vs2017配置LAStools+测试代码

再次读入转换后的pcd点云即可

3 CC转换的pcd文件头和代码转换的文件头对比

1) CC转换的pcd文件头

# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS Classification Intensity PointSourceId GpsTime rgb x y z _
SIZE 4 4 4 4 4 4 4 4 1
TYPE F F F F F F F F U
COUNT 1 1 1 1 1 1 1 1 4
WIDTH 71107
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 71107
DATA binary

2)代码转换的文件头

# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z intensity
SIZE 4 4 4 4
TYPE F F F F
COUNT 1 1 1 1
WIDTH 71107
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 71107
DATA binary

你可能感兴趣的:(PCL)