OpenCV веб-камера не отображается - PullRequest
0 голосов
/ 10 ноября 2019

Я хочу создать программу, которая показывает мою веб-камеру в режиме реального времени, используя OpenCV, и всякий раз, когда я нажимаю SPACE, она делает снимок.

Я использую Python 3.6.4 и OpenCV 4.1.1. Это для программы, которая с помощью tenorflow сделает снимок и узнает, есть ли кто-то из базы данных или нет. Это мой текущий код:

cam = cv2.VideoCapture(0)
img_counter = 0

while True:
    ret, frame = cam.read()
    if not cam.isOpened():
        raise IOError("Cannot use webcam")
    elif cam.isOpened():
        cv2.imshow('frame', frame)
    if not ret:
        break
    if cv2.waitKey(1) == 27:
        #ESC pressed
        break
    elif cv2.waitKey(1) == 32:
        #SPACE pressed
        img_name = 'students_{}.png'.format(img_counter)
        cv2.imwrite(img_name, frame)
        print(img_name + 'was captured')
        img_counter += 1
cam.release()
cv2.destroyAllWindows()

, когда я его запускаю, возникает эта ошибка:

cv2.error: OpenCV (4.1.1) C: \ projects \ opencv-python \opencv \ modules \ highgui \ src \ window.cpp: 352: ошибка: (-215: утверждение не выполнено) size.width> 0 && size.height> 0 в функции 'cv :: imshow'

Моя цельпрямо сейчас - заставить его показать веб-камеру, сделать снимок и сохранить его в папках проекта.

Кто-нибудь знает, что не так? Или есть в тензорном потоке такая особенность, что мне не нужно использовать openCV? Большое спасибо, Габи

1 Ответ

0 голосов
/ 10 ноября 2019

Нашел ответ: я использую внешнюю камеру через usb, поэтому мне пришлось изменить cv2.VideoCapture (0) на cv2.VideoCapture (1) Я не уверен, есть ли способ сделать это напрямую через тензор потока, но я пытаюсь понять это.

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