OpenCV не может найти веб-камеру, но Cheese может - PullRequest
0 голосов
/ 05 февраля 2019

Моя установка opencv недавно перестала работать по причинам, в которых я не уверен.У меня есть два сценария, которые все дают разные ошибки:

Сценарий A:

import cv2
cap = cv2.VideoCapture(0)

while(True):
    ret, frame = cap.read()
    rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2BGRA)

    cv2.imshow('frame', rgb) 

дает мне эту ошибку:

select timeout
VIDIOC_DQBUF: Resource temporarily unavailable
Traceback (most recent call last):
  File "camera.py", line 19, in <module>
    rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2BGRA)
cv2.error: OpenCV(4.0.1-dev) /home/me/Packages/opencv/modules/imgproc/src/color.cpp:181: error: (-215:Assertion failed) !_src.empty() in function 'cvtColor'
import cv2
cap = cv2.VideoCapture(0)

while(True):
    ret, frame = cap.read()
    rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2BGRA)

    cv2.imshow('frame', rgb)

И сценарий B:

import cv2

def show_webcam(mirror=False):
    cam = cv2.VideoCapture(0)
    while True:
        ret_val, img = cam.read()
        if mirror: 
            img = cv2.flip(img, 1)
        cv2.imshow('my webcam', img)
        if cv2.waitKey(1) == 27: 
            break  # esc to quit
    cv2.destroyAllWindows()

def main():
    show_webcam(mirror=True)

выдает мне эту ошибку:

select timeout
VIDIOC_DQBUF: Resource temporarily unavailable
Traceback (most recent call last):
  File "camera3.py", line 26, in <module>
    main()
  File "camera3.py", line 22, in main
    show_webcam(mirror=True)
  File "camera3.py", line 15, in show_webcam
    cv2.imshow('my webcam', img)
cv2.error: OpenCV(4.0.1-dev) /home/david/Packages/opencv/modules/highgui/src/window.cpp:352: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow' 

Вот основная проблема: я раньше использовал OpenCV, и обе эти ошибки обычно возникают, когда opencv не может найти веб-камеру.Но у меня есть веб-камера, и когда я открываю веб-камеру Cheese Webcam Booth, она работает нормально и хорошо снимает.Есть ли способ исправить это без переустановки OpenCV?

Я нахожусь на Ubuntu 18.04.

Ответы [ 2 ]

0 голосов
/ 10 августа 2019

Два возможных решения: 1) установить правильный fps;2) обновить до новой версии opencv для python.

0 голосов
/ 06 февраля 2019

Я бы ознакомился с установкой OpenCV, так как Script A отлично работает на той же версии библиотеки и аналогичной ОС (Mint 19).

import cv2
    cap = cv2.VideoCapture(0)

    while(True):
        ret, frame = cap.read()
        rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2BGRA)

        cv2.imshow('frame', rgb) 
        cv2.waitKey(10)

Установка через

pip install opencv-python

известна наличием «проблем» с сторонними модулями (https://github.com/opencv/opencv/issues/8471).

Попробуйте собрать и установить из исходного кода, таким образом, интерфейсные модули также будут собраны и связаны (V4L, FFMpeg и т. Д.).

...