我检查了其他解决方案,但他们没有回答我的问题。
我的问题是,每当我尝试从视频中仅捕获一帧(我想基本上用我的网络摄像头拍照)时,我只会得到一个黑色窗口。
代码 -
import cv2
cam = cv2.VideoCapture(0)
frame = cam.read()[1]
cv2.imwrite('img2.png', frame)
cv2.imshow("img1", frame)
截屏 -
https://imgur.com/kfeXYvQ
我的网络摄像头是 USB,720p,30fps。
谢谢。
最佳答案
两件事之一。可能需要添加 waitKey()
在 cv2.imshow()
之后.或者,您没有检查相机返回的任何错误。可能是连接问题。这是要做的两件事。
import cv2
cam = cv2.VideoCapture(0)
retval, frame = cam.read()
if retval != True:
raise ValueError("Can't read frame")
cv2.imwrite('img2.png', frame)
cv2.imshow("img1", frame)
cv2.waitKey()
waitKey()
函数暂停程序,直到用户在窗口中输入一个键。
关于python - 使用 Python 捕获单帧(使用网络摄像头),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47824785/