2017-10-27 2 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)) 
관련 문제