为了账号安全,请及时绑定邮箱和手机立即绑定

循环重置计数并覆盖文件

循环重置计数并覆盖文件

12345678_0001 2021-05-06 18:54:39
我正在使用Open cv从目录中的一些视频中提取帧。在遍历文件时,我将获得的帧命名为frame0,frame1等。但是,当循环移至下一个视频时,它再次开始命名帧0,1,2 ...,因此所有旧帧都将被覆盖。这是我所做的:#To make a list of paths to all files in dirf=[]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 = 0while (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:        breakcap.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开始重新覆盖?
查看完整描述

1 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

count每次调用函数时都会初始化变量extractFrames-即每个文件一次。


您需要将初始化放在函数之外:


count = 0

def extractFrames(pathIn, pathOut):

  cap = cv.VideoCapture(pathIn)


  ...


查看完整回答
反对 回复 2021-05-25
  • 1 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号