如何减少OpenCV python中的帧数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何减少OpenCV python中的帧数?相关的知识,希望对你有一定的参考价值。

我正在使用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
答案

您正在阅读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()

以上是关于如何减少OpenCV python中的帧数?的主要内容,如果未能解决你的问题,请参考以下文章

abaqus的帧数和时间长度

opencv 视频处理(python)

python OpenCV中的帧操作

OpenCV-Python 视频读取

实现抖音视频抖动效果---OpenCV-Python开发指南(53)

如何在opencv中计算每秒帧数?