read (file_name, blob, cloud.sensor_origin_, cloud.sensor_orientation_, pcd_version, offset)传进来的是 pcl::PointCloud<PointT>数据,该函数为什么要用blob
时间: 2024-03-29 10:40:57 浏览: 103
jsp1.rar_jsp blob_jsp 图片_mysql blob_图片 MySQL
`read()` 函数的第二个参数 `blob` 是一个 `pcl::PCLPointCloud2` 类型的点云数据对象,用于存储从文件中读取到的原始点云数据。与之对应的是 `pcl::PointCloud<PointT>` 类型的点云数据对象 `cloud`,它是由 `pcl::PCLPointCloud2` 类型的点云数据转换而来的。在读取点云数据时,`read()` 函数首先会将原始数据读取到 `pcl::PCLPointCloud2` 类型的数据对象中,然后再将其转换为 `pcl::PointCloud<PointT>` 类型的数据对象。
为什么要先将数据读取到 `pcl::PCLPointCloud2` 类型的数据对象中呢?这是因为 `pcl::PCLPointCloud2` 类型的数据对象可以存储多种类型的点云数据,包括点云数据、法线数据、颜色数据等等。而 `pcl::PointCloud<PointT>` 类型的数据对象只能存储点云数据,因此在读取和保存点云数据时,我们需要将其转换为 `pcl::PCLPointCloud2` 类型的数据对象,以便能够支持更多类型的点云数据。
在 `read()` 函数中,`blob` 参数用于存储从文件中读取到的原始点云数据,而 `cloud` 参数用于存储转换后的点云数据。`cloud.sensor_origin_` 和 `cloud.sensor_orientation_` 参数用于存储点云数据的传感器原点和方向信息,这些信息通常存储在 PCD 文件的头部信息中。`pcd_version` 参数用于指定读取的 PCD 文件的版本号,而 `offset` 参数则用于指定读取点云数据时的偏移量(即跳过文件开头的若干字节)。
阅读全文