使用 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)
我的网络摄像头是 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 中输入一个键。
我检查了其他解决方案,但他们没有回答我的问题。 我的问题是,每当我尝试从视频中只捕获一帧(我基本上想用我的网络摄像头拍照)时,我只会得到一个黑色 window.
代码-
import cv2
cam = cv2.VideoCapture(0)
frame = cam.read()[1]
cv2.imwrite('img2.png', frame)
cv2.imshow("img1", frame)
我的网络摄像头是 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 中输入一个键。