【发布时间】:2014-10-01 00:22:02
【问题描述】:
这是我的代码。我想知道我的网络摄像头的帧速率。由于某种原因,获取 fps 属性的 cap.get(5) 不适用于实时捕获。所以我试图做一个工作来计算没有。在每个循环中拍摄的帧数。我使用 time.time() 函数来获取每帧之间的时间(使用它我可以计算一秒钟内的帧数)。我得到的结果约为 0.128。 但我现在的问题是 cv2.waitKey(x)。即使我用 1 或 10 或 100 代替 x,结果仍然相同。是的,我知道 x 以毫秒为单位。但是如果我把 x 设为 100,我应该得到 0.2 对吧?这里有什么问题? 任何帮助,将不胜感激。此外,如果有人可以帮助我计算 fps,我会很高兴。 PS。这一切都是因为我使用 OpenCV 保存的视频总是显得太快,即快进..
注意:如果我把 x 设为 1000,那么我得到 2.128。
import numpy as np
import cv2
import time
cap = cv2.VideoCapture(0)
#print cap.get(5)
# Define the codec and create VideoWriter object
fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter('output1.avi',fourcc, 10, (640,480))
while(cap.isOpened()):
start = time.time()
ret, frame = cap.read()
if ret==True:
frame = cv2.flip(frame,1)
# write the flipped frame
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
end = (time.time() - start)
print end
# Release everything if job is finished
cap.release()
out.release()
cv2.destroyAllWindows()
【问题讨论】:
标签: python opencv video time camera