pcl::PointXYZRGBA
türünde bir nokta var. Rgb değerlerini nasıl atayabilirim/değiştirebilirim?pcl :: PointXYZRGBA'nın RGB değerlerini nasıl değiştirebilirim?
Xyz koordinatlarını değiştirmek için point.x = some_value
'u yapabilirim.
pcl::PointXYZRGBA
türünde bir nokta var. Rgb değerlerini nasıl atayabilirim/değiştirebilirim?pcl :: PointXYZRGBA'nın RGB değerlerini nasıl değiştirebilirim?
Xyz koordinatlarını değiştirmek için point.x = some_value
'u yapabilirim.
pcl::PointXYZRGBA
yerine pcl::PointXYZRGB
kullanabilirsiniz. Bence ikisi de aynı şeyi yapıyorlar. Ve sonra bir nokta kırmızı (255,0,0) renklendirmek için yapabileceğiniz:
pcl::PointXYZRGB point = pcl::PointXYZRGB(255, 0, 0);
Ve xyz koordinatlar daha sonra sırasıyla atanabilir: Veya eğer: DÜZENLEME
point.x = x;
point.y = y;
point.z = z;
Eğer
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
İkinci bölümün yanlış - '.rgba' bir' uint32_t' – Eric
yapmak Ya da sadece kullanabilirsiniz pcl::PointXYZRGBA
sopa ile sahip
point.r = 255;
point.b = 0;
point.g = 0;
point.a = 255;
Bu düzeltilmiş cevap olmalı. Basit ve açık. – Shaowu
'Point' sınıfı Pcl belgesinde var gibi görünmüyor ... Sadece [pcl :: PointXYZRGBA] 'yı bulabilirim (http://docs.pointclouds.org/trunk/structpcl_1_1_point_x_y_z_r_g_b_a.html). – Synxis
@Synxis: Haklısınız. Ben pcl :: PointXYZRGBA sınıfının 'point' adında bir örneğe başvuruyorum. –
"getRGBEigen3i()' veya "point.r" (ve "g" ve "b" için aynıdır) kullanamazsınız? – Synxis