opencv - 在淡出时刻检测多个激光指示器位置
问题描述
使用 OpenCV 检测激光指示器有很多解决方法。但我有一个相反的任务。当一个或多个指针消失在给定的四点轮廓区域内时,我需要检测多个激光指针的位置。
- 轮廓区域是静态的,在帧之间没有变化
- 指针淡出时间为 50、100、150 ms(可配置)
- 所有这些都应该使用 60fps 网络摄像头视频流实时工作,无需大量计算
准备步骤:
- 应用阈值过滤器
- 从 Blob Detector 获取激光指示器位置
可能的每帧指针条件:
- 指针 1在轮廓区域内,指针 2在轮廓区域外
- Blob Detector 未能在给定帧检测到一个或多个指针(但大多数情况下它会检测到)
- 指针 1已被用户关闭并在给定的时间(50 毫秒)内消失,但指针 2在轮廓区域内
- 指针 1已被用户关闭,但指针 2在轮廓区域之外
- 用户在轮廓区域内关闭了一个或多个指针并出现在外部
- 用户在轮廓区域内关闭了一个或多个指针,并且不再出现在框架的任何位置
- 指针 1已被用户在指针 2的一小段距离内关闭
- 等等等等
一种可能的解决方案:为每个新检测到的指针分配固定大小的半径(比如图像大小的 10%)和时间戳。在接下来的帧中,如果没有在先前定义的圆形区域内检测到一个指针,并且经过的时间大于 50ms,则将其确定为指针命中。
我已经尝试过这种方法和许多其他方法,但是根据所描述的指针条件的多样性,它们都给出了糟糕的结果。
解决方案
推荐阅读
- torch - 使用 torch/distro 在 Windows 10 上安装 Torch 时出现问题
- javascript - 如何在 JavaScript 中同步运行函数?
- c++ - 如何在 Visual Studio 2019 中有条件地编译 c++ 源文件?
- c - 凯撒密码 - 有条件的跳跃或移动取决于未初始化的值
- haskell - 如何在 Liquid Haskell 中编写 log2 函数
- elasticsearch - Elasticsearch 中 _search 上“preference”和“search_type”的结果差异
- nginx - 如何让两个虚拟主机在同一台服务器上工作以集成 Onlyoffice - DocumentServer
- c - 分配给具有数组类型的表达式并请求非结构或联合中的成员
- javascript - 我如何制作一个代码,当输入是您的 TikTok 关注者列表时,列出所有超过 ex 的关注者列表。一万粉丝?
- excel - Excel 2016/2013 崩溃运行 SaveAs 方法 2 次