【问题标题】:Are cv::viz::Widget clickable? (OpenCV C++)cv::viz::Widget 可以点击吗? (OpenCV C++)
【发布时间】:2016-11-02 23:18:23
【问题描述】:

我发现可以有 an event handler for mouse click in viz,但不是 Widget 的等价物。

有什么方法可以使用从viz::MouseEvent() 返回的Point 来检测对小部件的点击?

【问题讨论】:

    标签: c++ opencv


    【解决方案1】:

    不,小部件不可点击。

    你可以:

    1. 获取鼠标事件
    2. 检查点击检查是否 type == MouseButtonPress
    3. 获取发生点击的窗口中的点
    4. 使用 converTo3DRay 获取代表 click 的所有 3D 深度的射线
    5. 迭代您的小部件以寻找交叉点。每个小部件中的交点计算方式不同。

    getWidgetPose 为您提供参考相机的姿势。 getWidgetPose(...).translation() 为您提供小部件所在的位置。如果您对此翻译不满意,可以应用 converTo3DRay。

    如果您发现许多小部件,您可以按 z 坐标排序(越低,越靠近相机)。它适用于点,它更难用于其他几何。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-26
      • 2017-05-17
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-10
      相关资源
      最近更新 更多