gpt4 book ai didi

qt - 如何在 PCL(使用 Qt)中可视化一系列 TOF 传感器数据?

转载 作者:行者123 更新时间:2023-12-04 12:54:10 29 4
gpt4 key购买 nike

我有这个 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

最佳答案

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

在我继承自 QVTKWidgetVTKPointCloudWidget 中:

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();
}

每当发出新的传感器图像时,它都会发送到:

void VTKPointCloudWidget::showPointCloud(SensorPicture pic)
{
// converts the sensor image to a point cloud
pcl::PointCloud<pcl::PointXYZ>::Ptr pc = cvtSP2PC(pic);

pc->width = pic.width;
pc->height = pic.height;

vis.updatePointCloud<pcl::PointXYZ>(pc);

this->update();
}

关于qt - 如何在 PCL(使用 Qt)中可视化一系列 TOF 传感器数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11918650/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com