2017-05-03 35 views
0

システムパラメータ:Windows 8.1、Python 2.7.13、OpenCV 3.2.0.7Python OpenCVはウェブカメラキャプチャで黒い画面を表示します

このコードは正常に動作します。

import numpy as np 
import cv2 
import time 

cap = cv2.VideoCapture('tmp.avi') 

while(True): 
    ret, frame = cap.read() 

    cv2.imshow('frame',frame) 
    if cv2.waitKey(1) & 0xFF == 27: 
     break 

cap.release() 
cv2.destroyAllWindows() 

しかし、私は、Webカメラから画像を取得しようとすると、RETがTrueですが、私はいつも黒い画面を参照してください:私はグラブを使用しようとした

import numpy as np 
import cv2 
import time 

cap = cv2.VideoCapture(0) 

while(True): 
    ret, frame = cap.read() 

    if not ret: continue 

    cv2.imshow('frame',frame) 
    if cv2.waitKey(1) & 0xFF == 27: 
     break 

cap.release() 
cv2.destroyAllWindows() 

私はaviファイルや.MP4動画を試してみましたreadメソッドの代わりにメソッドを取得するので、grabはTrueを返しますが、retrieveはfalseを返します。

import numpy as np 
import cv2 
import time 

cap = cv2.VideoCapture(0) 

while(True): 
    if not cap.grab(): break 
    ret, frame = cap.retrieve() 
    if not ret: continue 

    cv2.imshow('frame',frame) 
    if cv2.waitKey(1) & 0xFF == 27: 
     break 

cap.release() 
cv2.destroyAllWindows() 

最後のコードは動画で問題ありません。

Windowsカメラソフトが正常に動作するため、ウェブカメラは問題ありません。

私はOpenCVを再インストールしようとしましたが、それは役に立ちませんでした。

何が問題ですか? readメソッドがTrueを返しても、retrieveメソッドがFalseを返すのはなぜですか?

+1

'cv2.VideoCapture(0)'はあなたのウェブカムですか?可能であれば 'cv2.VideoCapture(1)'を試してください –

+0

私はそれが0であると確信しています – Sergey

+0

'print {{x {}}。format(cap.get(3)、cap.get(4))'有効かどうかを調べる幅と高さ。 –

答えて

0

私は非常に同じ問題を抱えていました。

カメラドライバをアンインストールしてから再インストールしてください。

私はなぜそれが私のために働いたのかわかりません。

関連する問題