如何使用 PCL 1.9 制作我们自己的点类型
how to make our own Point Type with PCL 1.9
我一直在关注这个 tutorial 来制作它。但我认为它已被弃用,因为你必须
#include <pcl/memory.h>
自 PCL 1.8 以来已被删除。我没有找到其他教程来绕过这个问题。
我需要制作一个新的点类型,除了 XYZ 坐标、法线和颜色之外,它还可以包含 15 个其他标量作为参数。
之后我导入了一个新的点云,它已经写在我的磁盘上,其中包含具有相同参数的点。有了这个点型我就可以用了
经过一番努力后,我是这样解决的:
你不会
#include <memory.h>
由于我提到的原因,它似乎已被弃用。
我建议你关注this tutorial
因此,如果您创建自己的点类型,您的代码将如下所示:
struct MyPointType
{
PCL_ADD_POINT4D; // preferred way of adding a XYZ+padding
PCL_ADD_RGB; //if you want to add colors, you'd better use that
float the_exact_name_of_the_scalar1;
float the_exact_name_of_the_scalar2;
EIGEN_MAKE_ALIGNED_OPERATOR_NEW // make sure our new allocators are aligned
} EIGEN_ALIGN16; // enforce SSE padding for correct memory alignment
POINT_CLOUD_REGISTER_POINT_STRUCT(MyPointType, // here we assume a XYZ + "test" (as fields)
(float, x, x)
(float, y, y)
(float, z, z)
(float,rgb,rgb) //colors
(float, the_exact_name_of_the_scalar1, the_exact_name_of_the_scalar1)
(float, the_exact_name_of_the_scalar2, the_exact_name_of_the_scalar2)
)
然后您就可以像使用经典点类型一样使用 MyPointType。
使用 PCL 1.9 你应该使用
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
而不是
PCL_MAKE_ALIGNED_OPERATOR_NEW
我一直在关注这个 tutorial 来制作它。但我认为它已被弃用,因为你必须
#include <pcl/memory.h>
自 PCL 1.8 以来已被删除。我没有找到其他教程来绕过这个问题。
我需要制作一个新的点类型,除了 XYZ 坐标、法线和颜色之外,它还可以包含 15 个其他标量作为参数。
之后我导入了一个新的点云,它已经写在我的磁盘上,其中包含具有相同参数的点。有了这个点型我就可以用了
经过一番努力后,我是这样解决的:
你不会
#include <memory.h>
由于我提到的原因,它似乎已被弃用。
我建议你关注this tutorial
因此,如果您创建自己的点类型,您的代码将如下所示:
struct MyPointType
{
PCL_ADD_POINT4D; // preferred way of adding a XYZ+padding
PCL_ADD_RGB; //if you want to add colors, you'd better use that
float the_exact_name_of_the_scalar1;
float the_exact_name_of_the_scalar2;
EIGEN_MAKE_ALIGNED_OPERATOR_NEW // make sure our new allocators are aligned
} EIGEN_ALIGN16; // enforce SSE padding for correct memory alignment
POINT_CLOUD_REGISTER_POINT_STRUCT(MyPointType, // here we assume a XYZ + "test" (as fields)
(float, x, x)
(float, y, y)
(float, z, z)
(float,rgb,rgb) //colors
(float, the_exact_name_of_the_scalar1, the_exact_name_of_the_scalar1)
(float, the_exact_name_of_the_scalar2, the_exact_name_of_the_scalar2)
)
然后您就可以像使用经典点类型一样使用 MyPointType。
使用 PCL 1.9 你应该使用
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
而不是
PCL_MAKE_ALIGNED_OPERATOR_NEW