Python 检测到人时显示图像

Python 检测到人时显示图像,python,opencv,Python,Opencv,我有一个实时面部识别程序,可以识别我认识的人的面部 然后在上面写上那个人的名字。 现在,当检测到像“Alex”这样的人时,我将显示我为此人看到的图像,几秒钟后将其关闭,然后再次显示新的人 这是我的一段代码: for face_encoding in face_encodings: # match = face_recognition.compare_faces(known_face_encoding, face_encoding) # Matches=

我有一个实时面部识别程序,可以识别我认识的人的面部 然后在上面写上那个人的名字。 现在,当检测到像“Alex”这样的人时,我将显示我为此人看到的图像,几秒钟后将其关闭,然后再次显示新的人 这是我的一段代码:

for face_encoding in face_encodings:
           # match = face_recognition.compare_faces(known_face_encoding, face_encoding)
           # Matches=np.where(match)[0] #Checking which image is matched
            face_distances=face_recognition.face_distance(face_encodings, face_encoding)
            Matches =list(face_distances<= 0.4)
            name="Unknown"

            if True in Matches:
               match_index = np.argmin(face_distances)
               name = known_person[match_index]
            face_names.append(name)
对于面编码中的面编码:
#匹配=面部识别。比较面部(已知面部编码,面部编码)
#Matches=np.where(match)[0]#检查哪个图像匹配
面部距离=面部识别。面部距离(面部编码,面部编码)

Matches=list(face_distances您的问题不清楚,但无论如何,一旦您正确识别了此人的姓名并希望在屏幕上显示其图像,只需使用OpenCV库中的imshow函数即可

下面是一段代码片段,可以帮助您实现这一目标:

import cv2  

#YOUR CODE LOGIC ... --> you get the name of the person that has been detected

if (name == "Alex"):
    picture = cv2.imread("Alex.jpg")
    cv2.imshow(name, picture)
    cv2.waitKey()
    cv2.destroyAllWindows()

谢谢,但我的意思是,例如,我有10个名字,每个名字有10个图像,我希望他们在屏幕上出现5秒,当他们检测到他们时,图像关闭,然后,如果看到其他人,同样的方式。@rkoofoo,你是说每个名字10个图像中的每一个都有5秒?是的,我要做的就是使用DiPython中的字典,但我没有任何想法是的,我一定会非常感谢你,我有一个问题,当我检测到。我只是一个问题,当我检测到多个人时,当两个人在摄像机前时,我可能会遇到错误。