Ho un punto del tipo pcl::PointXYZRGBA
. Come posso assegnare/modificare i suoi valori rgb?Come posso modificare i valori RGB di pcl :: PointXYZRGBA?
Per modificare le coordinate xyz, posso semplicemente fare point.x = some_value
.
Ho un punto del tipo pcl::PointXYZRGBA
. Come posso assegnare/modificare i suoi valori rgb?Come posso modificare i valori RGB di pcl :: PointXYZRGBA?
Per modificare le coordinate xyz, posso semplicemente fare point.x = some_value
.
È possibile utilizzare pcl::PointXYZRGB
anziché pcl::PointXYZRGBA
. Penso che entrambi facciano lo stesso. E poi per colorare un punto rosso (255,0,0), si può fare:
pcl::PointXYZRGB point = pcl::PointXYZRGB(255, 0, 0);
E i xyz coordinate possono poi essere assegnati rispettivamente:
point.x = x;
point.y = y;
point.z = z;
EDIT: O se si deve attaccare con pcl::PointXYZRGBA
, si può fare
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
La tua seconda parte è errata - '.rgba' è un' uint32_t' – Eric
o semplicemente usare
point.r = 255;
point.b = 0;
point.g = 0;
point.a = 255;
Questa dovrebbe essere la risposta corretta. Semplice e chiaro – Shaowu
La classe 'Point' non sembra esistere nel doc Pcl ... posso trovare solo [PCL :: PointXYZRGBA] (http://docs.pointclouds.org/trunk/structpcl_1_1_point_x_y_z_r_g_b_a.html). – Synxis
@Synxis: hai ragione. Mi riferisco a un'istanza chiamata 'point' della classe pcl :: PointXYZRGBA. –
Non puoi usare 'getRGBEigen3i()', o 'point.r' (e lo stesso per' g' e 'b')? – Synxis