私はthe official documentationをフォローしており、ウェブカメラからビデオを読み込もうとしています。私は、ドキュメントからのコードの一部を実行すると:OpenCVを使用してウェブカメラからビデオを読むにはどうすればよいですか?
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
それは次のように出力して失敗します。
ret
は常にFalse
です:さらにそれを点検OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /io/opencv/modules/imgproc/src/color.cpp, line 9748
Traceback (most recent call last):
File "capture.py", line 11, in
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.error: /io/opencv/modules/imgproc/src/color.cpp:9748: error: (-215) scn == 3 || scn == 4 in function cvtColor、と思われます。
cap.get(3)
(画像の幅を取得する)を追加すると、0.0
が返されます。cap.isOpened()
をテストすると、結果は常にFalse
になります。cap.open(0)
に電話をかけた場合、open
はFalse
も返します。cap.open("/dev/video0")
を呼び出すと何も変わりません。cap = cv2.VideoCapture(0)
をcap = cv2.VideoCapture("/dev/video0")
に変更しても効果はありません。
VLCの/dev/video0
を開くと、ウェブカメラからのビデオが表示されます。チーズを開くと、ウェブカメラのビデオも表示されます。 PCには1台のカメラしか接続されていません。
提案がありますか?
opencvはどのようにインストールしましたか?あなたのOSは何ですか?どのバージョンのPythonを使用しますか? – eyllanesc
どのようにOpencvをインストールしましたか? – ZdaR
@eyllanesc:私はOpenCVをインストールしました(そして確かにそれを一度再インストールしました)。私が質問を投稿してから、私はC++のサンプルを試してみました。私はUbuntuとPython 3の最新バージョンを使用しています。 –