qt下使用vtk和pcl显示点云,加入removePointCloud函数报错

结论:qvtkWidget->update();函数调用后要等一定时间刷新后才可以使用removePointCloud移除点云。

使用updatePointCloud函数正常显示,但是项目需要一定数据量后移除多余的点云,于是使用

removePointCloud函数移除。pcl版本1.8.1;vtk7.1.1;平台Ubuntu。一个线程处理数据,另一个线程更新显示,使用ui->qvtkWidget->update()刷新。

报错:

The inferior stopped because it received a signal from the operating system.

Signal name :

SIGSEGV

Signal meaning :

Segmentation fault

多数时候断点会跳转到:

 renderTime = (initialized)?(aProp->GetRenderTimeMultiplier()):(1.0);

给个会报错的片段

        ui->qvtkWidget->update();
              //  boost::this_thread::sleep(boost::posix_time::milliseconds(300)); //1
        while(sub_maps_index.size() > 10 && test_flag) {
...
            remove_submap_screen(submape_entry);// 2 viewer->removePointCloud(str);
...
        }

        ui->qvtkWidget->update();

最后发现注释1处延时超过一定时间后就不会有问题了,2处会调用removePointCloud()

贴个个人笔记:

编程实例问题pcl
http://t.zoukankan.com/zhaobinyouth-p-6198081.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值