【发布时间】:2018-04-08 19:56:40
【问题描述】:
我从 3D 传感器得到一个距离矩阵,我如何用不同的颜色 (RGB) 表示距离信息。例如,红色表示近距离,绿色表示中等距离,蓝色表示远距离。
【问题讨论】:
标签: 3d kinect point-cloud-library
我从 3D 传感器得到一个距离矩阵,我如何用不同的颜色 (RGB) 表示距离信息。例如,红色表示近距离,绿色表示中等距离,蓝色表示远距离。
【问题讨论】:
标签: 3d kinect point-cloud-library
只需将点复制到 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;
}
【讨论】:
在 MATLAB 中使用颜色图。假设您的深度数据存储在 16 位单通道图像中,请使用以下代码。
im=imread(‘pathtoyourimage’)
clrd=ind2rgb(im, jet(2^13))
【讨论】: