我正在使用下面的代码,但是我得到了一个黑色的图像。你能帮我纠正这个错误吗?
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()
igetnqfo1#
更新:请参阅github.com/opencv/opencv/pull/11880和链接的对话,只有少数后端支持-1作为索引。
虽然这是一个老帖子,这个答案可以帮助那些仍然面临同样问题的人。如果你有一个单一摄像头,但它呈现全黑,使用cv2.VideoCapture(-1)。这将为你获得工作摄像头。
cv2.VideoCapture(-1)
zujrkrfu2#
只需将cv2.waitKey(0)更改为cv2.waitKey(30),此问题就会得到解决。
cv2.waitKey(0)
cv2.waitKey(30)
e0uiprwp3#
我也遇到过同样的问题。更新opencv和网络摄像头驱动程序都不起作用。我用卡巴斯基作为杀毒软件。当我禁用卡巴斯基时,黑色输出问题解决了。顺便说一句,我可以看到运行的.py文件在卡巴斯基控制台〉报告〉主机入侵防御。它报告应用程序权限控制规则触发-应用程序:myfile.py,结果:已阻止:访问视频捕获设备
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()
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()
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()
kh212irz7#
在多次致电之后,我也遇到了同样的问题:
cap = cv2.VideoCapture(0)
当我把指数改为1时就解决了
cap = cv2.VideoCapture(1)
bq3bfh9z8#
在我的情况下,只是禁用卡巴西已经解决了这个问题。
8条答案
按热度按时间igetnqfo1#
更新:请参阅github.com/opencv/opencv/pull/11880和链接的对话,只有少数后端支持-1作为索引。
虽然这是一个老帖子,这个答案可以帮助那些仍然面临同样问题的人。如果你有一个单一摄像头,但它呈现全黑,使用
cv2.VideoCapture(-1)
。这将为你获得工作摄像头。zujrkrfu2#
只需将
cv2.waitKey(0)
更改为cv2.waitKey(30)
,此问题就会得到解决。e0uiprwp3#
我也遇到过同样的问题。更新opencv和网络摄像头驱动程序都不起作用。我用卡巴斯基作为杀毒软件。当我禁用卡巴斯基时,黑色输出问题解决了。
顺便说一句,我可以看到运行的.py文件在卡巴斯基控制台〉报告〉主机入侵防御。它报告应用程序权限控制规则触发-应用程序:myfile.py,结果:已阻止:访问视频捕获设备
xesrikrc4#
试试这个:
ukdjmx9f5#
**这对我很有效:**我安装了pip imutils Imuls是一个库,它包含了一系列方便的函数,可以实现基本的图像处理功能,如平移、旋转、调整大小、 backbone 化、显示Matplotlib图像、排序轮廓、检测边缘等,使用OpenCV以及Python 2.7和Python 3时,这些功能会更加容易。
inn6fuwd6#
尝试将-0放在索引上并暂停任何正在运行的防病毒程序
kh212irz7#
在多次致电之后,我也遇到了同样的问题:
当我把指数改为1时就解决了
bq3bfh9z8#
在我的情况下,只是禁用卡巴西已经解决了这个问题。