我正在做一个基本的面部识别程序,我正在尝试实现一个超时系统来锁定计算机。基本上,它应该等待一秒钟,然后向计数器添加1。如果计数器达到10,则会激活if语句以锁定计算机。但是当运行这个程序时,它不会运行代码的任何其他部分,直到它看到一张脸。我是新来的,所以非常感谢您的帮助
def facecheck():
if matches == face_recognition.compare_faces(taylor_face_encoding, known_face_encodings):
print("Confirmed")
Confirm = True
exit()
else:
print("Negative")
correct-=1
if correct <= -3:
print("User disallowed!")
subprocess.call('/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend',shell=True)
exit()
while continue1 == 1:
time.sleep(1)
print("Counting")
countdown+=1
facecheck()
您的代码似乎与您正在描述的流程并不完全相似,但您手头的问题是,您的代码在单个流程中运行,因此,在循环中,不会执行其他任何操作。为此,有
multiprocessing as well as the threading
包。这样,您就可以启动一个在其旁边运行的解耦流程。 最简单的例子:上面将启动一个进程,等待10秒,然后执行面检查(需要实现
face_accepted
),如果接受面,则再等待10秒重新检查。如果面不被接受,系统将被锁定(lock()
需要),并每秒检查面,直到显示正确的面相关问题 更多 >
编程相关推荐