我有一个类型为pcl::PointXYZRGBA
的点。如何分配/更改其rgb值?
要更改xyz坐标,我可以简单地执行point.x = some_value
。
我有一个类型为pcl::PointXYZRGBA
的点。如何分配/更改其rgb值?
要更改xyz坐标,我可以简单地执行point.x = some_value
。
或者只需使用
point.r = 255;
point.b = 0;
point.g = 0;
point.a = 255;
您可以使用pcl::PointXYZRGB
代替pcl::PointXYZRGBA
。我认为它们的功能是相同的。然后,要将一个点变成红色(255,0,0),您可以执行以下操作:
pcl::PointXYZRGB point = pcl::PointXYZRGB(255, 0, 0);
然后可以分别指定xyz坐标:
point.x = x;
point.y = y;
point.z = z;
编辑: 或者如果你必须坚持使用pcl::PointXYZRGBA
,你可以这样做。pcl::PointXYZRGBA point;
uint8_t r = 255;
uint8_t g = 0;
uint8_t b = 0;
int32_t rgb = (r << 16) | (g << 8) | b;
point.rgba = *(float *)(&rgb); // makes the point red
.rgba
是一个 uint32_t
。 - Eric
Point
类在Pcl文档中似乎不存在...我只能找到pcl::PointXYZRGBA。 - SynxisgetRGBEigen3i()
或者point.r
(对于g
和b
同样如此)吗? - Synxis