【发布时间】:2015-01-27 10:17:02
【问题描述】:
我正在开展一个项目,我正在将用户的不同身体姿势转换为语音。每当用户做出手势时,手势识别函数都会返回某个值,否则返回零。但是我不希望程序出错,所以我想检查函数是否在一定时间内返回该特定值。我知道我可以使用延迟或计数器来做到这一点,但是在 c++/visual studio 中有没有更有效的方法来做到这一点? 我想做这样的事情
if (gesture_function==somevalue_for_some_milliseconds)
我知道我能做到 如果(手势功能==值) 延迟毫秒() 如果(手势功能==值) 是的手势 别的 没有做出手势
干杯......
【问题讨论】:
-
大概你有一些线程从相机获取新帧并在它们上调用一些手势识别函数:该线程必须要么从你的相机 API 获得“回调”,要么在帧之间阻塞。无论哪种方式,您都可以保留产生相同手势的帧数的计数器 - 如果手势更改覆盖“lastest_gesture_seen”变量并将计数器重置为 0。当计数器达到某个值时,对其进行操作。如果它很脆弱,您可以使用循环缓冲区和容差,例如如果最后 10 个手势函数中的 8 个产生的值相同,则您尊重它。
-
more efficient way是什么意思?更高效的编程时间、更高效的内存资源、更高效的执行时间或更“高效”的鲁棒性/质量?!? -
我只是想知道是否有执行此操作的命令。例如,在 opencv 中,我们有 WaitKey(delay)=="KEYVALUE" 通过这样做我可以找到某个键是否被按下了一段时间(由延迟给出)并相应地继续
-
afaik 没有操作系统或硬件解决方案来观察内存位置的变化,但如果你创建一个类并使用 getter 和 setter 应该很容易实现;)
标签: c++ visual-studio-2010 opencv visual-c++ visual-studio-2012