如何更改pcl :: PointXYZRGBA的RGB值?

6 c++ opencv image-processing computer-vision point-cloud-library

我有一个类型的点 pcl::PointXYZRGBA.如何分配/更改其rgb值?

为了改变xyz坐标,我可以做到point.x = some_value.

Dee*_*eze 9

或者只是使用

point.r = 255;
point.b = 0;
point.g = 0;
point.a = 255;
Run Code Online (Sandbox Code Playgroud)


Fei*_*Fei 5

你可以用pcl::PointXYZRGB而不是pcl::PointXYZRGBA.我认为他们都这样做.然后为红色点亮(255,0,0),你可以这样做:

pcl::PointXYZRGB point = pcl::PointXYZRGB(255, 0, 0);
Run Code Online (Sandbox Code Playgroud)

然后可以分别分配xyz坐标:

point.x = x;
point.y = y;
point.z = z;
Run Code Online (Sandbox Code Playgroud)

编辑:或者如果你必须坚持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
Run Code Online (Sandbox Code Playgroud)