我正在研究一个覆盆子pi python脚本,我正在努力让if语句做我想做的事。
我可以在视频流中计算手指,这样可以正常工作。
接下来我想在计算5个手指(缺陷)时启动第一个事件(蜂鸣声),然后进入子循环,如果5个手指随后在给定时间(2s)内变为零手指然后再进行另一次事件(点击)发生。
这是我到目前为止(不太正常):
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)
希望有人可以提供帮助 感谢
答案 0 :(得分:2)
问题是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)