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并发)