web-dev-qa-db-ja.com

OpenCvエラーは、ビデオキャプチャを通じてカメラを開くことができません

私はopencvを通じてカムを使用していて、突然再起動した後、コードを実行したところ、以下のエラーが表示されました:

_[ 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()
_

私もcap = cv2.VideoCapture(1)を試してみましたが、カメラが見つからないことを示しています

この問題を解決するにはどうすればよいですか?

3
Nabeel Ayub

その部分には触れませんが、あなたがやろうとしていることは、実行するたびにカメラを開くことができるコードのブロックです。

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

私も同じ問題を抱えていました。0を1に変更し、次に-1に変更して、再度0に戻します。これがうまくいった理由がわかりません。

0
veradeus