我有一点类型 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