我正在编写一个raspberry pi python脚本,我正在努力让if语句做我想做的事情。
我可以在视频流中用手数手指,这工作得很好。
接下来,我想在计数到5个手指(缺陷)时启动第一个事件(嘟嘟声),然后进入一个子循环,如果这5个手指随后在给定时间(2秒)内变为零个手指,则会发生另一个事件(点击)。
这就是我到目前为止所做的(不是很有效):
if count_defects==5:
os.system('mpg321 beep.mp3 -q')
time.sleep(2)
if count_defects<5:
os.system('mpg321 click.mp3 -q')
else:
cv2.putText(img, "Waiting", (50,50), font, 1, (255,255,255), 1)希望有人能帮忙谢谢
发布于 2016-05-29 23:41:54
问题是count_defects接受初始值== 5来传递if子句。但是,除非您给它一个重新计算的机会,否则它永远不会假设另一个值。我不知道你用来获取这个值的函数,但是你的代码应该看起来像下面这样。
def check_number_of_fingers():
return number_of_fingers
count_defects = check_number_of_fingers()
if count_defects == 5:
os.system('mpg321 beep.mp3 -q')
time.sleep(2)
count_defects = check_number_of_fingers() # Recalculate the value after elapsed time
if count_defects < 5:
os.system('mpg321 click.mp3 -q')
else:
cv2.putText(img, "Waiting", (50,50), font, 1, (255,255,255), 1)https://stackoverflow.com/questions/37511650
复制相似问题