我正在使用Open cv从目录中的一些视频中提取帧。在遍历文件时,我将获得的帧命名为frame0,frame1等。但是,当循环移至下一个视频时,它再次开始命名帧0,1,2 ...,因此所有旧帧都将被覆盖。
这是我所做的:
#To make a list of paths to all files in dir
f=[]
for dirpath, subdir, files in os.walk(r'C:\Users\user\Desktop\Files'):
for x in files:
f.append(os.path.join(dirpath, x))
提取帧的功能:
def extractFrames(pathIn, pathOut):
cap = cv.VideoCapture(pathIn)
count = 0
while (cap.isOpened()):
ret, frame = cap.read()
if ret == True:
print('Read %d frame: ' % count, ret)
cv.imwrite(os.path.join(pathOut, "frame{:d}.jpg".format(count)),
frame)
count += 1
else:
break
cap.release()
cv.destroyAllWindows()
然后我执行代码:
pathOut=r'C:\Users\User\Desktop\Frames'
def main():
for i in f:
extractFrames(i, pathOut)
if __name__=="__main__":
main()
我该如何纠正,以便当循环在创建n帧后遇到下一个视频时,它开始将它们命名为n + 1,n + 2...。而不是从0开始重新覆盖?
万千封印
相关分类