2017-10-27 4 views
0

darstellen Ich habe eine Abstandsmatrix von einem 3D-Sensor, wie kann ich die Abstandsinformationen mit verschiedenen Farben (RGB) darstellen. Zum Beispiel bedeutet Rot kurze Reichweite, grün bedeutet mittlere Reichweite und blau bedeutet lange Reichweite.wie entfernungsinformationen von 3d-kamera mit RGB

Antwort

0

Kopieren Sie einfach die Punkte in eine PointXYZRGB Wolke, aber legen Sie die r, g, b Werte in Abhängigkeit von Ihrem Bereichswert fest. So etwas wie:

pcl::PointCloud<pcl::PointXYZRGB>::Ptr pointCloudXYZItoXYZRGB(const pcl::PointCloud<pcl::PointXYZI>::Ptr in) 
{ 
    pcl::PointCloud<pcl::PointXYZRGB>::Ptr out(new pcl::PointCloud<pcl::PointXYZRGB>); 
    // Fill in the cloud data 
    out->width = in->width; 
    out->height = in->height; 
    out->is_dense = false; 
    out->points.resize(in->width * in->height); 

    for (size_t i = 0; i < in->points.size(); ++i) 
    { 
     out->points[i].x = in->at(i).x; 
     out->points[i].y = in->at(i).y; 
     out->points[i].z = in->at(i).z; 

     if (out->points[i].y > 5) 
     { 
      out->points[i].r = 255; 
      out->points[i].g = 0; 
      out->points[i].b = 0; 
     } //etc 
    } 

    return out; 
} 
0

Verwenden Sie in MATLAB Farbkarten. Wenn Ihre Tiefendaten in einem 16-Bit-Einzelkanalbild gespeichert sind, verwenden Sie den folgenden Code.

im=imread(‘pathtoyourimage’) 
clrd=ind2rgb(im, jet(2^13))