JayNicht 2023-12-10 20:44 采纳率: 30.8%
浏览 8
已结题

PCL注册的选点等函数如何取消注册

本项目使用PCL+VTK可视化点云并编辑,因为要实现屏幕选点的功能,所以使用了PCLVisualizer中自带的回调函数,具体实现如下:
QVTKWindow的构造函数中:

    //绑定类成员函数并注册
    std::function<void(const pcl::visualization::PointPickingEvent&)> pickPoint =
            std::bind(&QVTKWindow::pp_callback, this, std::placeholders::_1);
    viewer->registerPointPickingCallback(pickPoint);

具体实现:

void QVTKWindow::pp_callback(const pcl::visualization::PointPickingEvent &event)
{
    if (event.getPointIndex() == -1)
       return;
    PointT currentPoint;
    event.getPoint(currentPoint.x, currentPoint.y, currentPoint.z);

    PointCloudT currentPointCloud;
    currentPointCloud.push_back(currentPoint);
    PointCloudT::Ptr currentPointPtr = currentPointCloud.makeShared();
    // Draw clicked points in red:将选中点用红色标记
    pcl::visualization::PointCloudColorHandlerCustom<PointT> red(currentPointPtr, 255, 0, 0);
    viewer->removePointCloud("currentPoint");
    viewer->addPointCloud(currentPointPtr, red, "currentPoint");
    viewer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 10, "currentPoint");
    std::cout << currentPoint.x << " " << currentPoint.y << " " << currentPoint.z << std::endl;

}

实现没有问题,请问现在如何将该回调函数取消注册,即我想实现取点功能的状态开关。在启动选点功能时将函数注册进去,在关闭选点功能时取消注册。

  • 写回答

9条回答 默认 最新

  • 郭老师的小迷弟雅思莫了 Java领域新星创作者 2023-12-10 20:46
    关注

    由人工智能和答主提供,可以参考如下,如果回答的不正确,及时评论区回复,我追加回答,谢谢。


    要取消注册回调函数,可以使用viewer->deregisterPointPickingCallback(pickPoint)方法。在你的代码中,可以在需要切换选点功能状态的地方调用这个方法。例如:

    // 启动选点功能
    viewer->registerPointPickingCallback(pickPoint);
    
    // 关闭选点功能
    viewer->deregisterPointPickingCallback(pickPoint);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

问题事件

  • 系统已结题 12月19日
  • 已采纳回答 12月11日
  • 创建了问题 12月10日

悬赏问题

  • ¥20 一个python博客项目的相关图例
  • ¥15 轮廓提取也提取不到,有没有别的方法,如何解决?
  • ¥50 Js和c++如何将含有图片的excel文件上传到后台服务器
  • ¥15 光电神经网络,FPGA
  • ¥20 通过防火墙出入站阻止游戏程序联网失效
  • ¥15 鼠标是可以在QT界面上移动的,但是热拔插鼠标无法移动了同时板子上是没问题的,如何解决?
  • ¥15 iframe嵌套显示问题
  • ¥20 【UE4】别人打包好的ue4游戏我该如何在自己的ue4引擎上运行
  • ¥15 power bi发布的链接地址打不开
  • ¥15 pip list列表中有库,但是编译时就显示缺少库