网络摄像头&x2B;打开CV Python |黑屏

网络摄像头&x2B;打开CV Python |黑屏,python,opencv,webcam,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() 试试这个: import cv2 import numpy as np cap =

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

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()
试试这个:

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()
试试这个:

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

更新:参见github.com/opencv/opencv/pull/11880和链接对话,只有少数后端支持-1作为索引



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

更新:请参阅github.com/opencv/opencv/pull/11880和链接的对话,只有少数后端支持-1作为索引



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

这对我来说很有效: 我做了一个pip安装。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()

这对我很有效: 我做了一个pip安装。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()

只要把
cv2.waitKey(0)
改成
cv2.waitKey(30)
,这个问题就会解决。

只要把
cv2.waitKey(0)
改成
cv2.waitKey(30)
这个问题就会解决。

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


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

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


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

尝试将-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()

尝试在索引上放置-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()


可能重复的请检查c.isOpened()重新安装OpenCV模块为我修复了问题。可能重复的请检查c.isOpened()重新安装OpenCV模块为我修复了问题。不确定这是否有帮助。我想这和网络摄像头本身有关。哈,是的,我刚注意到了这一点。希望OP能更新更多的系统信息。然后有更多的硬件为导向的人将能够协助。哈哈,不用担心。顺便说一句,这是比OP发布的代码更好的代码。它更健壮。原始代码中的变量名非常糟糕。不确定这是否有用。我想这和网络摄像头本身有关。哈,是的,我刚注意到了这一点。希望OP能更新更多的系统信息。然后有更多的硬件为导向的人将能够协助。哈哈,不用担心。顺便说一句,这是比OP发布的代码更好的代码。它更健壮。原始代码中的变量名太糟糕了。在连续运行捕获几个小时后,这种情况发生在我身上。无论是罗技还是其他品牌。在变黑之后,我运行了这个cv2/VideoCapture(-1),它恢复了生机。想知道@praveen你知道原因是什么,以及这有什么帮助?这与cv2.release()的不同之处在于,刚刚意识到只有少数后端支持使用“-1”搜索第一个可用/免费的摄像头。查看和链接的对话。这发生在我连续运行捕获几个小时后。无论是罗技还是其他品牌。在变黑之后,我运行了这个cv2/VideoCapture(-1),它恢复了生机。想知道@praveen你知道原因是什么,以及这有什么帮助?这与cv2.release()的不同之处在于,刚刚意识到只有少数后端支持使用“-1”搜索第一个可用/免费的摄像头。请参阅和链接对话。谢谢,我禁用了卡巴斯基,它就像一个魔咒。我禁用了卡巴斯基,它就像一个魔咒