@fjstar

Как сделать так, что бы обновлялось всё время?

Я написал такой код:
import requests
import cv2
import numpy as np
import imutils
  
url = "кхм кхм"


while True:
    img_resp = requests.get(url)
    img_arr = np.array(bytearray(img_resp.content), dtype=np.uint8)
    imgshka = cv2.imdecode(img_arr, -1)
    imgshka = imutils.resize(imgshka, width=1000, height=1800)
    cv2.imshow("Android_cam", imgshka)

    if cv2.waitKey(1) == 27:
        break

faces = cv2.CascadeClassifier('faces.xml')
results = faces.detectMultiScale(imgshka, scaleFactor=1.8, minNeighbors=3)

for (x,y,w,h) in results:
        cv2.rectangle(imgshka, (x,y), (x + w, y + h), (0, 0, 255), thickness=3)
        


cv2.imshow("Android_cam", imgshka)
cv2.waitKey(0)
  
cv2.destroyAllWindows()


Он должен распознавать лица с камеры телефона. Вообщем запись и вправду идет с телефона, но лицо не обнаруживает.
Только я не давно заметил, что когда я нажимаю ESC, у меня открывается новое окно, с застывшим кадром и там отлично распознает лицо. Как сделать так, что бы обнаруживало лица в реальном времени? Не жалуйтесь на url, я его специально скрыл
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Я написал такой код:

Не верю. (с)

Если бы ты сам его написал, ты бы знал, что у тебя там сначала вечный цикл while True, который прерывается только если нажата клавиша (cv2.waitKey()) с кодом 27, т.е. Esc. Но этот цикл только читает кадр и показывает его в окне. А всё распознавание идёт уже после этого цикла. И там же вывод одного кадра и ожидание любой клавиши.

Если нужно, чтобы операция выполнялась для каждого кадра - она должна быть внутри цикла по кадрам. Логично?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы