如何在PCL(Qt)中可视化一系列TOF-Sensor数据?

时间:2012-08-12 00:00:08

标签: qt vtk point-cloud-library

我有这个TOF传感器,我想将传感器的数据可视化为Qt中的点云。我将数据转换为pcl::PointCloud,现在我想将其可视化。

传感器的API会在创建一个图片时发出图片。然后我会将其发送到QVTKWidget来进行可视化。我用这段代码(我从here获得)尝试了它:

pcl::visualization::PCLVisualizer pvis ("test_vis", false); 
// 'false' prevents PCLVisualizer's own window to pop up

pvis.addPointCloud<pcl::PointXYZ>(pc); // pc is my point cloud

vtkSmartPointer<vtkRenderWindow> renderWindow = pvis.getRenderWindow();
widget.SetRenderWindow(renderWindow);

但似乎这仅仅意味着可视化一个稳定的点云,而不是点云的变化序列

问题:每当我的传感器发出新照片时,有没有办法更新cloud_xyz

1 个答案:

答案 0 :(得分:12)

好的,经过一番尝试,这是我的解决方案:

继承自VTKPointCloudWidget的{​​{1}}:

QVTKWidget

每当发射新的传感器图像时,都会将其发送到:

pcl::visualization::PCLVisualizer vis ("vis", false); 

VTKPointCloudWidget::VTKPointCloudWidget(QWidget *parent) : QVTKWidget(parent)
{
   this->resize(500, 500);
   pcl::PointCloud<pcl::PointXYZ>::Ptr pc (new pcl::PointCloud<pcl::PointXYZ>);

   vis.addPointCloud<pcl::PointXYZ>(pc);
   vtkSmartPointer<vtkRenderWindow> renderWindow = vis.getRenderWindow();
   this->SetRenderWindow(renderWindow);
   this->show();
}