如何减少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中的帧数?的主要内容,如果未能解决你的问题,请参考以下文章