web-dev-qa-db-fra.com

Erreur OpenCv ne peut pas ouvrir la caméra via la capture vidéo

J'utilisais ma caméra via opencv et soudainement après le redémarrage, j'ai exécuté mon code, il affiche l'erreur ci-dessous:

[ WARN:0] global /io/opencv/modules/videoio/src/cap_v4l.cpp (802) open VIDEOIO ERROR: V4L: can't open camera by index 0
Traceback (most recent call last):
  File "test.py", line 20, in <module>
    retval, buffer_img = cv2.imencode('.jpg', frame)
cv2.error: OpenCV(4.1.2) /io/opencv/modules/imgcodecs/src/loadsave.cpp:877: error: (-215:Assertion failed) !image.empty() in function 'imencode'
cap = cv2.VideoCapture(0)  # here it throws an error


import json
while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    retval, buffer_img = cv2.imencode('.jpg', frame)

    resdata = base64.b64encode(buffer_img)

    resdata = "data:image/png;base64,"+ str(resdata.decode("utf-8"))
    PARAMS = {'image': resdata}

    # Our operations on the frame come here
    #gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Display the resulting frame
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

J'ai aussi essayé avec cap = cv2.VideoCapture(1) mais cela montre que la caméra ne peut pas être trouvée

Comment puis-je résoudre ce problème?

3
Nabeel Ayub

Je n'irai pas dans cette partie Ce que vous essayez de faire, voici juste un bloc de code qui peut ouvrir votre caméra à chaque fois que vous l'exécutez,

python: 3.7.3

OpenCV: 4.1.0

import cv2
cap = cv2.VideoCapture(0)
while True:

    ret, frame = cap.read()
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()
1
Sohel Reza

J'ai eu le même problème, il suffit de changer 0 à 1, puis à -1 et de nouveau à 0. Je ne sais pas pourquoi cela a fonctionné pour moi.

0
veradeus