2015-04-15 449 views
0

我使用下面的代碼,但我得到一個黑色的圖像。你能幫我糾正錯誤嗎?Webcam + Open CV Python |黑屏

import cv2 
import numpy as np 
c = cv2.VideoCapture(0) 

while(1): 
    _,f = c.read() 
    cv2.imshow('e2',f) 
    if cv2.waitKey(5)==27: 
     break 
cv2.destroyAllWindows() 
+0

[使用網絡攝像頭與opencv python顯示黑屏w/waitkey()]可能重複(http://stackoverflow.com/questions/27948013/using-webcam-with-opencv-python-shows-a-black -screen-w-waitkey) – rayryeng

+1

請檢查c.isOpened() – berak

回答

-1

試試這個:

import cv2 
import numpy as np 

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

不知道這是否有幫助。我認爲這與網絡攝像頭本身有關。 – rayryeng

+0

哈耶剛纔注意到,因爲我發佈。 – Aphire

+0

很希望OP會更新系統信息。那麼更多面向硬件的人將能夠提供幫助。 – Aphire

2

儘管這是一個老帖子,這個答案可以幫助誰仍然面臨着同樣的問題的人。如果您有一個單個網絡攝像機但它呈現全部黑色,請使用cv2.VideoCapture(-1)。這會讓你工作的相機。

0

這工作對我來說: 我做了一個pip安裝imutils。 Imutils是一個具有一系列便利功能的庫,可用於製作基本的圖像處理功能,例如翻譯,旋轉,調整大小,縮略圖,顯示Matplotlib圖像,排列輪廓,檢測邊緣,使用OpenCV以及Python 2.7和Python 3更容易。

import cv2 
import imutils 

cap = cv2.VideoCapture(0) # video capture source camera (Here webcam of laptop) 
ret, frame = cap.read() # return a single frame in variable `frame` 


while (True): 
    # gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 
    (grabbed, frame) = cap.read() 
    frame = imutils.resize(frame, width=400) 
    cv2.imshow('img1', frame) # display the captured image 
    if cv2.waitKey(1) & 0xFF == ord('q'): # save on pressing 'y' 
     cv2.imwrite('capture.png', frame) 
     cv2.destroyAllWindows() 
     break 

cap.release() 
0

只是將cv2.waitKey(0)更改爲cv2.waitKey(30)並且此問題將得到解決。