微凉的衣柜 2020-11-03 22:44 采纳率: 63.9%
浏览 605
已采纳

pcl鼠标事件函数中 viewer->addText语句它引发异常

我在跑《点云库PCL从入门到精通》这本书第五章可视化,自定义交互(P127)的代码时,调试鼠标事件函数:

void mouseEventOccurred(const pcl::visualization::MouseEvent &event,
    void* viewer_void)
{
    boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer = *static_cast<boost::shared_ptr<pcl::visualization::PCLVisualizer> *> (viewer_void);
    if (event.getButton() == pcl::visualization::MouseEvent::LeftButton &&
        event.getType() == pcl::visualization::MouseEvent::MouseButtonRelease)
    {
        std::cout << "Left mouse button released at position (" << event.getX() << ", " << event.getY() << ")" << std::endl;

        char str[512];
        sprintf(str, "text#%03d", text_id++);
        viewer->addText("clicked here", event.getX(), event.getY(), str);//引发错误
    }
}

如果去掉

viewer->addText("clicked here", event.getX(), event.getY(), str)

就可以正常运行,否则会在pcl显示界面单击鼠标后会显示以下错误:
图片说明
图片说明

查了很久没有查到如何解决,麻烦各位帮忙看看,谢谢!

  • 写回答

2条回答 默认 最新

  • 微凉的衣柜 2020-12-28 21:46
    关注

    我试了加入3d文字,好像没报错了

    p->viewer->addText3D("clicked here", current_point2);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 6月29日