【发布时间】:2014-06-04 11:04:33
【问题描述】:
我正在尝试使用 OpenCV 从网络摄像头中获取单个帧。但是 QueryFrame() 返回的图像比当前帧旧得多。它需要多次 QueryFrame() 调用才能获得最新的图像,但即使这样也比预期的当前图像滞后 2 到 3 秒。我尝试使用不同的网络摄像头,但结果是一样的。我尝试了 cv2 中的 read() 方法并遇到了同样的问题。有没有办法解决这个问题并使用 OpenCV 从网络摄像头获取当前帧?
网络摄像头的速度为 30fps,分辨率为 640/480。操作系统:Ubuntu 12.04,OpenCV 2.4.9
# CV code
import cv
capture = cv.CaptureFromCAM(0)
img = cv.QueryFrame(capture)
cv.SaveImage("test2.JPG", img)
# CV2 code
import cv2
cam = cv2.VideoCapture()
cam.open(-1)
img=cam.read()
cv2.imwrite("test3.jpg",img[1])
【问题讨论】:
-
当您从相机中读取一帧帧时,如何确定捕获的图像会滞后 2~3 秒?
-
在 for 循环中重复调用 QueryFrame() 时,返回的图像似乎赶上了。
-
可以,循环一段时间后可以保存第第N帧
-
可以和我们分享整个代码吗?
-
@zhangxaochen 试过了,但是从长远来看,帧数明显滞后。
标签: python opencv image-processing