descriptor不是pcl::PointXYZ的成员该怎么改
时间: 2023-11-30 15:04:43 浏览: 71
Python中的Descriptor描述符学习教程
如果您想要为pcl::PointXYZ添加一个新的descriptor成员,可以通过以下两种方式之一实现:
1. 继承pcl::PointXYZ类并添加新的descriptor成员:
```c++
#include <pcl/point_types.h>
struct PointXYZDescriptor : public pcl::PointXYZ
{
float descriptor;
};
```
然后,您可以使用PointXYZDescriptor类型来代替PointXYZ类型。
2. 使用pcl::PointCloud类来定义一个包含PointXYZ和descriptor的新点类型:
```c++
#include <pcl/point_cloud.h>
#include <pcl/point_types.h>
struct PointXYZDescriptor
{
PCL_ADD_POINT4D; // 添加x、y、z坐标
float descriptor;
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
} EIGEN_ALIGN16;
POINT_CLOUD_REGISTER_POINT_STRUCT(PointXYZDescriptor, // 注册
(float, x, x)
(float, y, y)
(float, z, z)
(float, descriptor, descriptor)
)
// 使用
pcl::PointCloud<PointXYZDescriptor>::Ptr cloud(new pcl::PointCloud<PointXYZDescriptor>);
```
然后,您可以在使用时将pcl::PointXYZ替换为PointXYZDescriptor类型。
阅读全文