opencv 网络摄像头+打开简历Python|黑屏

jfgube3f  于 2023-01-13  发布在  Python
关注(0)|答案(8)|浏览(181)

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

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

igetnqfo1#

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

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

zujrkrfu

zujrkrfu2#

只需将cv2.waitKey(0)更改为cv2.waitKey(30),此问题就会得到解决。

e0uiprwp

e0uiprwp3#

我也遇到过同样的问题。更新opencv和网络摄像头驱动程序都不起作用。我用卡巴斯基作为杀毒软件。当我禁用卡巴斯基时,黑色输出问题解决了。
顺便说一句,我可以看到运行的.py文件在卡巴斯基控制台〉报告〉主机入侵防御。它报告应用程序权限控制规则触发-应用程序:myfile.py,结果:已阻止:访问视频捕获设备

xesrikrc

xesrikrc4#

试试这个:

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

ukdjmx9f5#

**这对我很有效:**我安装了pip imutils Imuls是一个库,它包含了一系列方便的函数,可以实现基本的图像处理功能,如平移、旋转、调整大小、 backbone 化、显示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()
inn6fuwd

inn6fuwd6#

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

kh212irz7#

在多次致电之后,我也遇到了同样的问题:

cap = cv2.VideoCapture(0)

当我把指数改为1时就解决了

cap = cv2.VideoCapture(1)
bq3bfh9z

bq3bfh9z8#

在我的情况下,只是禁用卡巴西已经解决了这个问题。

相关问题