簡體   English   中英

Python OpenCV在網絡攝像頭捕獲時提供黑屏

[英]Python OpenCV gives black screen on webcam capture

系統參數:Windows 8.1,Python 2.7.13,OpenCV 3.2.0.7

這段代碼工作正常。 我試過.avi和.mp4視頻:

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

但是當我嘗試從網絡攝像頭拍照時,我總是看到黑屏雖然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()

我試圖使用grab和retrieve方法而不是read方法,所以grab返回True,但是retrieve返回ret = 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 Camera軟件工作正常,因此網絡攝像頭還可以。

我試圖重新安裝OpenCV,它沒有幫助。

問題是什么? 為什么檢索方法返回False雖然read方法返回True?

我今天也在使用gocv.io庫的Windows上遇到了這個問題。

我刪除並重新安裝了網絡攝像頭驅動程序,問題解決了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM