我该如何使用OpenCV获取视频的当前帧数?OpenCV是否有内置函数可以获取当前帧数,还是我需要手动完成?
您可以像以下示例一样使用捕获对象的“get”方法:
capture.get(CV_CAP_PROP_POS_FRAMES); // retrieves the current frame number
还有:
capture.get(CV_CAP_PROP_FRAME_COUNT); // returns the number of total frames
顺便提一句,这些方法返回一个double值。cap.get(cv2.CAP_PROP_POS_FRAMES)
import cv2
cam = cv2.VideoCapture(<filename>);
print cam.get(cv2.cv.CV_CAP_PROP_POS_FRAMES)
import cv2
cap = cv2.VideoCapture(0)
if not cap.isOpened():
raise IOError("Cannot open webcam")
cap.set(cv2.CAP_PROP_BUFFERSIZE, 1)
while True:
ret, frame = cap.read()
cv2.imshow('frame', frame)
if cv2.waitKey(0) == ord('q'):
break
cap.grab()
opencv-contrib-python
版本 4.5.2.54。 - Volkov Maxim