3D 센서에서 거리 매트릭스를 얻었는데 어떻게 서로 다른 색상 (RGB)으로 거리 정보를 표현할 수 있습니까? 예를 들어 빨간색은 짧은 범위를 의미하고 녹색은 중간 범위를 의미하고 파란색은 긴 범위를 의미합니다.3D 카메라에서 RGB로 거리 정보를 표현하는 방법
0
A
답변
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))