使用Python捕获单个帧(使用网络摄像头)

时间:2017-12-15 02:01:04

标签: python image opencv webcam

我检查了其他解决方案,但他们没有回答我的问题。 我的问题是,每当我尝试从视频中捕获一帧时(我想基本上用我的网络摄像头拍照)我只是得到一个黑色的窗口。

代码 -

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。

感谢。

1 个答案:

答案 0 :(得分:2)

两件事之一。您可能需要在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()函数暂停程序,直到用户在窗口中输入了一个键。