视频(avi)转换为图片(Python代码实现)

举报
小小谢先生 发表于 2022/04/16 01:58:14 2022/04/16
【摘要】 下面Python代码是把视频格式是avi的视频转换为一帧一帧的图片 import osimport numpy as npimport cv2 video_src_src_path = 'data/hmdb_data_demo' #数据集路径label_name = os.listdir(video_src_src_path)labe...

下面Python代码是把视频格式是avi的视频转换为一帧一帧的图片


  
  1. import os
  2. import numpy as np
  3. import cv2
  4. video_src_src_path = 'data/hmdb_data_demo' #数据集路径
  5. label_name = os.listdir(video_src_src_path)
  6. label_dir = {}
  7. index = 0
  8. for i in label_name:
  9. if i.startswith('.'):
  10. continue
  11. label_dir[i] = index
  12. index += 1
  13. video_src_path = os.path.join(video_src_src_path, i)
  14. video_save_path = os.path.join(video_src_src_path, i) + '_jpg'
  15. if not os.path.exists(video_save_path):
  16. os.mkdir(video_save_path)
  17. videos = os.listdir(video_src_path)
  18. # 过滤出avi文件
  19. videos = filter(lambda x: x.endswith('avi'), videos)
  20. for each_video in videos:
  21. each_video_name, _ = each_video.split('.')
  22. if not os.path.exists(video_save_path + '/' + each_video_name):
  23. os.mkdir(video_save_path + '/' + each_video_name)
  24. each_video_save_full_path = os.path.join(video_save_path, each_video_name) + '/'
  25. each_video_full_path = os.path.join(video_src_path, each_video)
  26. cap = cv2.VideoCapture(each_video_full_path)
  27. frame_count = 1
  28. success = True
  29. while success:
  30. success, frame = cap.read()
  31. # print('read a new frame:', success)
  32. params = []
  33. params.append(1)
  34. if success:
  35. cv2.imwrite(each_video_save_full_path + each_video_name + "_%d.jpg" % frame_count, frame, params)
  36. frame_count += 1
  37. cap.release()
  38. np.save('label_dir.npy', label_dir)
  39. print(label_dir)

 

文章来源: blog.csdn.net,作者:小小谢先生,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/xiewenrui1996/article/details/108746063

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。