level 2
我开启线程的时候发送信号,将pcl visualizer 类指针和界面ui指针都发送了过去:
void Qtselfpcl::_ondisplay()
{
myT->moveToThread(thread);
thread->start();
emit thread_test(viewer, cloud2, cloud3, &ui);
oud2->points[jj].z;
}
在子线程中接收了指针后进行绘图:
void Profile_display::test_profile(pcl::visualization::PCLVisualizer::Ptr pviewer, PointCloudT::Ptr cloud2, PointCloudT::Ptr cloud3, Ui::QtselfpclClass* pui)
{
_ui = *pui;
_viewer = pviewer;
_cloud2 = cloud2;
_cloud3 = cloud3;
_cloud_pl->clear();
for (size_t jj = 0; jj < _cloud2->points.size(); ++jj)
{
pcl::visualization::PointCloudColorHandlerGenericField<pcl::PointXYZRGB> fildColor(_cloud_pl, "z");
_viewer->addPointCloud(_cloud_pl, fildColor, "_cloud_pl");
pviewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 1, "_cloud_pl");
pviewer->updatePointCloud(_cloud_pl, fildColor, "_cloud_pl");
pviewer->resetCamera();
_ui.qvtkWidget->update();
}
}
利用for循环画10次,在画图的过程中如果旋转点云或平移点云,就会造成如图所示的错误。
2020年10月23日 08点10分
2
level 2
我怀疑是鼠标事件的问题,有没有人遇到过类似的问题啊?
2020年10月23日 08点10分
3