如何用RGB来表示来自3d相机的距离信息

时间:2017-10-27 08:56:53

标签: 3d kinect point-cloud-library

我有一个3D传感器的距离矩阵,如何用不同的颜色(RGB)表示距离信息。例如,红色表示短程,绿色表示中程,蓝色表示长程。

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

在MATLAB中使用彩色图。假设您的深度数据存储在16位单通道图像中,请使用以下代码。

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