Ich habe einen Punkt des Typs pcl::PointXYZRGBA
. Wie kann ich seine rgb-Werte zuweisen/ändern?Wie kann ich RGB-Werte von pcl :: PointXYZRGBA ändern?
Um xyz-Koordinaten zu ändern, kann ich einfach point.x = some_value
tun.
Ich habe einen Punkt des Typs pcl::PointXYZRGBA
. Wie kann ich seine rgb-Werte zuweisen/ändern?Wie kann ich RGB-Werte von pcl :: PointXYZRGBA ändern?
Um xyz-Koordinaten zu ändern, kann ich einfach point.x = some_value
tun.
Sie können pcl::PointXYZRGB
anstelle von pcl::PointXYZRGBA
verwenden. Ich denke, beide machen das gleiche. Und dann einen Punkt rot zu färben (255,0,0), können Sie tun:
pcl::PointXYZRGB point = pcl::PointXYZRGB(255, 0, 0);
und die xyz-Koordinaten können dann jeweils zugeordnet werden:
point.x = x;
point.y = y;
point.z = z;
EDIT: Oder wenn Sie haben mit pcl::PointXYZRGBA
zu halten, können Sie
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
Ihr zweiter Teil ist falsch - '.rgba' ist ein' uint32_t' – Eric
tun Oder benutzen Sie einfach
point.r = 255;
point.b = 0;
point.g = 0;
point.a = 255;
Dies sollte die korrigierte Antwort sein. Einfach und klar. – Shaowu
Die Klasse 'Point' scheint im Pcl-Dokument nicht zu existieren ... Ich kann nur [pcl :: PointXYZRGBA] (http://docs.pointclouds.org/trunk/structpcl_1_1_point_x_y_z_r_g_b_a.html) finden. – Synxis
@Synxis: Sie haben Recht. Ich beziehe mich auf eine Instanz namens 'Punkt' der Klasse pcl :: PointXYZRGBA. –
Können Sie 'getRGBEigen3i()' oder 'point.r' (und dasselbe für' g'und 'b') nicht verwenden? – Synxis