网络摄像头+ Open CV Python |黑屏

时间:2015-04-15 08:29:09

标签: python opencv webcam

我正在使用下面的代码,但我得到一张黑色图片。你能帮我纠正这个错误吗?

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

6 个答案:

答案 0 :(得分:5)

虽然这是一篇很老的帖子,但这个答案可以帮助那些仍然面临同样问题的人。如果您有网络摄像头,但它呈现全黑,请使用cv2.VideoCapture(-1)。这将为您提供工作相机。

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分:0)

这对我有用:  我做了一个pip install imutils。 Imutils是一个具有一系列便利功能的库,用于制作基本的图像处理功能,如平移,旋转,调整大小,骨架化,显示Matplotlib图像,排序轮廓,检测边缘,以及使用OpenCV以及Python 2.7和Python 3更加轻松。 / p>

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

答案 3 :(得分:0)

只需将cv2.waitKey(0)更改为cv2.waitKey(30)即可解决此问题。

答案 4 :(得分:0)

我遇到了同样的问题。更新opencv和网络摄像头驱动程序均无效。我正在使用卡巴斯基作为防病毒软件。当我禁用卡巴斯基时,黑色输出问题就解决了。

顺便说一句,我可以在卡巴斯基控制台>报告>主机入侵防护中看到正在运行的.py文件。它报告触发了应用程序特权控制规则-应用程序:myfile.py,结果:被阻止:访问视频捕获设备

答案 5 :(得分:0)

尝试将 -0 放在索引上并暂停任何正在运行的防病毒软件

import cv2
import numpy as np

cap = cv2.VideoCapture(-0)
cap.set(3,640)
cap.set(3,480)

while(True):
    success, img = cap.read()

    cv2.imshow('frame',img)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()