在PCL可视化工具

时间:2017-12-05 17:06:30

标签: point-cloud-library

我有一个应用程序,我成功地从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:red

g:绿色

b:蓝色

id:文字ID标签

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

是否有人有过将空间坐标转换为PCL可视化工具中的像素或以其他方式成功绘制文本的经验?

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

感谢任何帮助

问候 Screenshot

1 个答案:

答案 0 :(得分:1)

Okey我使用了一个名为pcl :: visualization :: PCLVisualizer :: addText3D 的函数。

不支持擦除/更新在一段时间内添加的所有文本字段,因此总是需要知道每个相应文本的ID标记并迭代它们以擦除/更新它们。

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

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

下面是一个关于它现在看起来如何的可视化示例。Obstacle distance plotting