как управлять если условие prev_val и new_val и цикл while - PullRequest
0 голосов
/ 22 октября 2019

Я настраиваю новое приложение и хочу поддерживать его в своем приложении, где мне нужно изменить свой код. Как обрабатывать обнаружение нескольких пользователей в одном окне, а затем открывать только те пользовательские веб-страницы, которые находятся в моем фреймеа также, кто бы ни посетил первый раз во фрейме, если они выходят за пределы фрейма и возвращаются снова, откройте веб-страницу соответствующих пользователей, если 2 или 3 пользователя остаются в фрейме непрерывно, он не может открывать несколько вкладок непрерывно, он открывается по крайней мере один раз в текущемокно обнаружения

Я не могу написать правильную логику для этого ..

Извините за глупый вопрос, я новичок в python

Я попробовал этот код

if new_val not in faceRecognized:
    print("Code to call the webservice")
    new_list = new_val.split (",")
    print ("list: ", new_list)
    print (format(url)+ format(new_list[1])+"/" + format(new_list[2]))
    a_website = format(url)+ format(new_list[1])+"/" + format(new_list[2])
    webbrowser.open_new_tab(a_website)
    prev_val = new_val
    faceRecognized.append(new_val)
    continue
else:
    cv2.putText(im,'not recognized',(x-10, y-10), cv2.FONT_HERSHEY_PLAIN,1,(0, 255, 0))
    window = cv2.namedWindow('View Video', cv2.WINDOW_NORMAL)
    cv2.imshow('View Video',im)

так же, как я думал, мы использовали список, если обнаружение первого кадра затем открывает соответствующую веб-страницу и помещает ее в список, после того, как второе лицо обнаружит правильно, затем откройте веб-страницу второго лица и сравните с существующим списком, если онне открывайте веб-страницу, если она новая, а затем открывайте веб-страницу ..

prev_val = None
while True:
    (_, im) = webcam.read()
    gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    for (x,y,w,h) in faces:
        print('IN for loop')   
        cv2.rectangle(im,(x,y),(x+w,y+h),(255,0,0),2)
        face = gray[y:y + h, x:x + w]
        face_resize = cv2.resize(face, (width, height))

        # Try to recognize the face
        prediction = model.predict(face_resize)
        cv2.rectangle(im, (x, y), (x + w, y + h), (0, 255, 0), 3)
        new_val = names[prediction[0]]
        print("The prediction value is "+ format(new_val) + "  and score is  " + format(prediction[1]) )

        if prediction[1]>50:
            print("In prediction[1]>60 ")
            cv2.putText(im,'%s ' % (new_val.split (",")[0]),(x-10, y-10), cv2.FONT_HERSHEY_PLAIN,1,(0, 255, 0))

            #cv2.putText(im,'%s -Score is %.0f' % (names[prediction[0]],prediction[1]),(x-10, y-10), cv2.FONT_HERSHEY_PLAIN,1,(0, 255, 0))
            #if prev_val is not new_val:
            if new_val not in faceRecognized:
                print("Code to call the webservice")
                new_list = new_val.split (",")
                print ("list: ", new_list)
                print (format(url)+ format(new_list[1])+"/" + format(new_list[2]))                    
                a_website = format(url)+ format(new_list[1])+"/" + format(new_list[2])
                webbrowser.open_new_tab(a_website)
                prev_val = new_val                    
                faceRecognized.append(new_val)                    
                continue                
        else:
            cv2.putText(im,'not recognized',(x-10, y-10), cv2.FONT_HERSHEY_PLAIN,1,(0, 255, 0))
    window = cv2.namedWindow('View Video', cv2.WINDOW_NORMAL)
    cv2.imshow('View Video',im)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        cv2.destroyWindow('View Video') 
        break

Я хочу открывать только те пользовательские веб-страницы, которыеch в моем окне

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...