cv :: viz :: Widget是否可点击? (OpenCV C ++)

时间:2016-11-02 23:18:24

标签: c++ opencv

我看到an event handler for mouse click in viz可能有Widget,但document不等同。

有没有办法使用Point返回的viz::MouseEvent()来检测小部件上的点击?

1 个答案:

答案 0 :(得分:0)

否,小部件不可点击。

您可以:

  1. 获取MouseEvent
  2. 检查点击,检查类型是否为== MouseButtonPress
  3. 获取发生点击的窗口中的点
  4. 使用converTo3DRay获取代表3D中点击的所有深度的光线
  5. 重复您的小部件以查找交叉点。在每个小部件中,交点的计算方式不同。

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

如果找到许多小部件,则可以按z坐标(较低的位置,更靠近相机)进行排序。它适用于点,其他几何很难。