cv::viz::Widget 可以点击吗? (OpenCV C++)

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案1】:

不,小部件不可点击。

你可以:

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

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

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

【讨论】:

以上是关于cv::viz::Widget 可以点击吗? (OpenCV C++)的主要内容,如果未能解决你的问题,请参考以下文章

有人可以向我解释为啥完美平方是 O(sqrt(n)) 的运行时间吗?

在列表中找到一个下降。这可以在 O(log n) 中完成吗?

NodeJS 可以在 Rails 3 应用程序中运行吗? (实现高I/O并发)

我可以使用 std::shared_ptr 在 IOCP 中包装每个 I/O 数据吗?

I/O 完成端口可以帮助数据库而不是文件写入吗?

Java hashmap 搜索真的是 O(1) 吗?