OpenCV - 从视频文件中捕获任意帧

时间:2017-05-08 00:22:11

标签: python-3.x opencv3.0 opencv-python

我使用以下代码从视频文件中提取特定帧。在这个例子中,我只是得到了中间框架:

import cv2
video_path = '/tmp/wonderwall.mp4'
vidcap = cv2.VideoCapture(video_path)
middle_frame = int(vidcap.get(cv2.CAP_PROP_FRAME_COUNT) / 2)
success, image = vidcap.read()
count = 0
success = True
while success:
    success, image = vidcap.read()
    if count == middle_frame:
        temp_file = tempfile.NamedTemporaryFile(suffix='.jpg', delete=False)
        cv2.imwrite(temp_file.name, image)
    count += 1

但是,使用此方法,在非常大的文件中捕获中间帧可能需要一段时间。

Apparently,在较旧的cv模块中,可以执行以下操作:

import cv
img = cv.QueryFrame(capture)

cv2中是否有类似的方式来获取视频文件中的特定帧,而不必迭代所有帧?

0 个答案:

没有答案