2017-10-27 5 views

答えて

0

ポイントをPointXYZRGBクラウドにコピーするだけで、範囲値に応じてr、g、b値を設定します。したがって、次のようなものがあります。

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

MATLABではカラーマップを使用しています。深度データが16ビットの単一チャンネル画像に格納されていると仮定して、以下のコードを使用します。

im=imread(‘pathtoyourimage’) 
clrd=ind2rgb(im, jet(2^13)) 
関連する問題