python使用openCV遍历文件夹里所有视频文件并保存成图片
如果你在文件夹里有很多视频,并且文件夹里还有文件夹,文件夹里的文件夹也有视频,怎么能逐个读取并且保存。。所以我写了个代码用了os,walk,这个可以遍历所有文件夹里的文件和文件夹
importos importcv2 cut_frame=250#多少帧截一次,自己设置就行 save_path="C:\文献与资料\手持红外\图片" forroot,dirs,filesinos.walk(r"C:\文献与资料\手持红外"):#这里就填文件夹目录就可以了 forfileinfiles: #获取文件路径 if('.mp4'infile): path=os.path.join(root,file) video=cv2.VideoCapture(path) video_fps=int(video.get(cv2.CAP_PROP_FPS)) print(video_fps) current_frame=0 while(True): ret,image=video.read() current_frame=current_frame+1 ifretisFalse: video.release() break ifcurrent_frame%cut_frame==0: #cv2.imwrite(save_path+'/'+file[:-4]+str(current_frame)+'.jpg', #image)#file[:-4]是去掉了".mp4"后缀名,这里我的命名格式是,视频文件名+当前帧数+.jpg,使用imwrite就不能有中文路径和中文文件名 cv2.imencode('.jpg',image)[1].tofile(save_path+'/'+file[:-4]+str(current_frame)+'.jpg')#使用imencode就可以整个路径中可以包括中文,文件名也可以是中文 print('正在保存'+file+save_path+'/'+file[:-4]+str(current_frame))
ps:下面看下python遍历文件夹
importos #遍历文件夹 defwalkFile(file): forroot,dirs,filesinos.walk(file): #root表示当前正在访问的文件夹路径 #dirs表示该文件夹下的子目录名list #files表示该文件夹下的文件list #遍历文件 forfinfiles: print(os.path.join(root,f)) #遍历所有的文件夹 fordindirs: print(os.path.join(root,d)) defmain(): walkFile("f:/ostest/") if__name__=='__main__': main()
总结
以上所述是小编给大家介绍的python使用openCV遍历文件夹里所有视频文件并保存成图片,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。