我有一个3D传感器的距离矩阵,如何用不同的颜色(RGB)表示距离信息。例如,红色表示短程,绿色表示中程,蓝色表示长程。
答案 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))