我正在使用下面的代码,但我得到一张黑色图片。你能帮我纠正这个错误吗?
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 :(得分: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()