无法在 PCL 中可视化 HSV 点云

Unable to visualize HSV Point Cloud in PCL

我已经捕获了 PointXYZRGBA 类型的点云,如下所示 -

我将其转换为 PointXYZHSV 并尝试使用 PCLVisualizer。令人惊讶的是,PCLVisualizer 将其显示为黑白,如下所示 -

下面是代码片段-

typedef pcl::PointXYZHSV PointHSV; 
typedef pcl::PointXYZRGBA PointRGBA; 
typedef pcl::PointCloud<PointHSV> PointCloudHSV; 
typedef pcl::PointCloud<PointRGBA> PointCloudRGBA; 

int main (int argc, char** argv) 
{ 
    pcl::visualization::PCLVisualizer viewer("Cloud Viewer"); 
    PointCloudRGBA::Ptr rgba_cloud (new PointCloudRGBA); 
    PointCloudHSV::Ptr hsv_cloud (new PointCloudHSV); 

    pcl::io::loadPCDFile("capture.pcd", *rgba_cloud); // read pcd
    pcl::PointCloudXYZRGBtoXYZHSV(*rgba_cloud, *hsv_cloud); // convert to hsv
    viewer.addPointCloud<PointHSV>(hsv_cloud, "hsv_cloud_name"); // show hsv

    viewer.spin(); 
    return 0; 
}

PCD文件可以从here下载。我在 PCL_VERSION: 1.8.1.99 Ubuntu 14.04 LTS 64 位 OS 中使用。

我很担心,因为我稍后将使用 PointXYZHSV 进行点云的基于颜色的分割。

如何可视化 HSV 点云?谢谢。

对于仍在深入研究此问题的任何人,PCLVisualizer 不准备处理 RGB(和强度类型)以外的不同颜色空间以用于显示目的。利用pcl::PointXYZHSVtoXYZRGB处理点云转换

void pcl::PointXYZHSVtoXYZRGB (const PointXYZHSV& in, PointXYZRGB& out);