无法在 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);
我已经捕获了 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);