我正在尝试使用opencv库构建程序。 我打算制作一个激光指针鼠标。
到目前为止,该程序可以检测激光点并实时移动该位置的光标位置。
现在我想让程序能够执行点击,如果可能的话,双击。
我唯一的想法是通过播放某个帧的坐标值并用当前帧坐标减去当前帧坐标来做到这一点。
我的问题是......我不知道如何在代码中实现它
我应该使用数组来存储坐标吗?或者我可以使用的任何其他解决方案??
提前感谢..
答案 0 :(得分:1)
点击可以通过激光指示消失并出现在同一点附近来表示,并且只有在1秒钟内发生这种情况。
您可以将最后一帧的坐标存储在std::vector
的CvPoint
中,并在激光指针再次出现时在此向量中进行简单搜索。应存储最后30个坐标,因此您将始终拥有最后1秒记录的坐标(30fps)。
双击是单击的一个小增强。为简单起见,双击可以看作在2秒内检测到2次单击。