【问题标题】:Add text next to a Point in PCL visualizer在 PCL 可视化工具中的点旁边添加文本
【发布时间】:2018-05-19 10:20:21
【问题描述】:

我有一个应用程序,我成功地实时绘制来自 LiDAR 的 2D 激光距离数据,并运行 PCL 的欧几里得聚类算法以不同颜色绘制这些聚类点。但是,我想在每个检测到的集群旁边添加一个文本,并告诉它与传感器的距离。我确实有每个检测到的集群的质心点的坐标,但是当我尝试使用 addText 时:

bool pcl::visualization::PCLVisualizer::addText (const std::string & text, int xpos, int ypos,double r,double g,double b,const std::string & id = "")

text:要在窗口中打印的文本

xpos:在 x 中的位置

ypos:y 中的位置

r: 红色

g:绿色

b:蓝色

id:文本ID标签

似乎函数 addText() 将文本放在 PIXEL x 和 y 值上,而不是实际值(米)上。但是,PCL 的其他方法,例如“addPoint()”、addCircle() 等,确实是根据真实世界的测量结果放置数据。

有没有人有在 PCL 可视化器中将空间坐标转换为像素的经验,或者以其他方式成功绘制文本?

以下是我的应用程序的屏幕截图。簇以红色绘制,质心周围有一个白色圆圈。在左下角,我正在打印每个集群的距离。可以看出,它们只是堆叠在一起,而不是被添加到自己的白色圆圈之上。

感谢您的帮助

问候 Screenshot

【问题讨论】:

    标签: point-cloud-library


    【解决方案1】:

    好吧,我让它与一个名为的函数一起工作:pcl::visualization::PCLVisualizer::addText3D

    不支持擦除/更新一段时间内添加的所有文本字段,因此始终需要知道每个文本的 ID 标签并遍历它们以擦除/更新它们。

    您可以使用以下功能删除文本:pcl::visualization::PCLVisualizer::removeText3D

    但请记住,文本 ID 标签与其他 ID 名称标签共享相同的内存空间(例如,您给圆圈、云或圆柱体等命名的名称)。这意味着如果您尝试添加名称为“abc”的文本,如果您的窗口中有一个名为“abc”的圆圈,他们的命令将失败。

    下面是它现在的外观示例。Obstacle distance plotting

    【讨论】:

      猜你喜欢
      • 2016-06-22
      • 2015-12-23
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      • 2021-02-05
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多