如何减少OpenCV python中的帧数?

问题描述 投票:0回答:1

我正在使用python和opencv来处理框架。我正在按照下面的代码将帧保存在目录中。我有一个问题,即使视频是1秒,我得到超过1000帧。

任何人都可以帮我如何减少帧数?

import cv2
import os 
cap = cv2.VideoCapture('7.mp4') 
currentFrame = 0
ret, frame = cap.read()
current_dir=os.getcwd()
while ret:
 name = current_dir+'/pic2/frame' + str(currentFrame) + '.jpg'
 print(name)
 cv2.imwrite(name,frame)
 currentFrame+=1
python opencv
1个回答
0
投票

您正在阅读1帧,然后,因为ret==True,您处于无限循环中,一遍又一遍地保存相同的帧。正如你在tutorials上看到的,你应该做这样的事情:

import os
import cv2

cap = cv2.VideoCapture('7.mp4') 

currentFrame = 0
current_dir = os.getcwd()
while True:                   # infinite loop
    ret, frame = cap.read()   # read frame-by-frame
    if not ret:               # if read fails
        break                 # break the loop
    name = os.path.join(current_dir, 'pic', 'frame{}.jpg'.format(currentFrame))
    print(name)
    cv2.imwrite(name, frame)
    currentFrame += 1

cap.release()
© www.soinside.com 2019 - 2024. All rights reserved.