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

Capturing a single frame with Python (using a webcam)

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

代码-

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。

谢谢。

两件事之一。可能是您需要在 cv2.imshow() 之后添加一个 waitKey()。或者,您没有检查相机的 return 是否有任何错误。这可能是一个连接问题。这是要做的两件事。

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() 函数暂停程序,直到用户在 window 中输入一个键。