2017-06-03 12 views
4

私は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)に電話をかけた場合、openFalseも返します。
  • cap.open("/dev/video0")を呼び出すと何も変わりません。
  • cap = cv2.VideoCapture(0)cap = cv2.VideoCapture("/dev/video0")に変更しても効果はありません。

VLCの/dev/video0を開くと、ウェブカメラからのビデオが表示されます。チーズを開くと、ウェブカメラのビデオも表示されます。 PCには1台のカメラしか接続されていません。

提案がありますか?

+1

opencvはどのようにインストールしましたか?あなたのOSは何ですか?どのバージョンのPythonを使用しますか? – eyllanesc

+0

どのようにOpencvをインストールしましたか? – ZdaR

+0

@eyllanesc:私はOpenCVをインストールしました(そして確かにそれを一度再インストールしました)。私が質問を投稿してから、私はC++のサンプルを試してみました。私はUbuntuとPython 3の最新バージョンを使用しています。 –

答えて

0

おそらくFFMPEGがありません。 OpenCVは、ffmpegが提供するビデオ、オープンカメラなどをデコードするためのコーデック情報が必要です。

WindowsにFFmpegをインストールする手順は、ここではhttp://www.wikihow.com/Install-FFmpeg-on-Windowsです。これに相当するLinuxに続いて、あなたの問題を解決できるかもしれません。

+0

ffmpeg 2.8.11は既にインストールされています。 –

+0

pipやanacondaを使ってopencvをインストールしましたか? –

関連する問題