首页 > 解决方案 > C++ 点云库 PCL。尝试加两点

问题描述

我刚刚开始使用点云库 (PCL)。我包括它,

#include <pcl/point_cloud.h>

并定义三个点,

pcl::PointXY pA, pB, pC;
pA.x = 1;
pA.y = 2;
pB = pA;

为什么 + 运算符没有重载?如果我尝试

pC = pA + pB;

我得到一个编译错误。这似乎是一个基本操作,所以我想当然地认为所有基本操作都会被定义,还是我错过了什么?

我在旧版本的 PCL (1.6) 中找到了一个名为“point_operators.h”的文件。这个文件定义了我想要的基本操作。然而,在我的新版本(1.9)中,这个文件是空的。怎么来的?

谢谢!

标签: c++point-cloud-library

解决方案


至于点之间的数学运算,请参阅这个 SO question

恕我直言,pcl 中的点类型不用于表示矢量,而是用于表示3D 世界中的物理点。将两个物理点加在一起没有多大意义(至少对我而言)。当您将从桌面采样的点添加到从电视采样的点时,您会期待什么?

尽管确实存在点组合,但我想背景并不相同。


推荐阅读