python脚本将视频抽帧为图像数据集

作者 : admin 本文共2469个字,预计阅读时间需要7分钟 发布时间: 2024-06-10 共2人阅读

AI应用开发相关目录

本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧
适用于具备一定算法及Python使用基础的人群

  1. AI应用开发流程概述
  2. Visual Studio Code及Remote Development插件远程开发
  3. git开源项目的一些问题及镜像解决办法
  4. python实现UDP报文通信
  5. python实现日志生成及定期清理
  6. Linux终端命令Screen常见用法
  7. python实现redis数据存储
  8. python字符串转字典
  9. python实现文本向量化及文本相似度计算
  10. python对MySQL数据的常见使用
  11. 一文总结python的异常数据处理示例
  12. 基于selenium和bs4的通用数据采集技术(附代码)
  13. 基于python的知识图谱技术
  14. 一文理清python学习路径
  15. Linux、Git、Docker常用指令
  16. linux和windows系统下的python环境迁移
  17. linux下python服务定时(自)启动
  18. windows下基于python语言的TTS开发
  19. python opencv实现图像分割
  20. python使用API实现word文档翻译
  21. yolo-world:”目标检测届大模型“
  22. 爬虫进阶:多线程爬虫
  23. python使用modbustcp协议与PLC进行简单通信
  24. ChatTTS:开源语音合成项目
  25. sqlite性能考量及使用(附可视化操作软件)
  26. 拓扑数据的关键点识别算法
  27. python脚本将视频抽帧为图像数据集

文章目录

  • AI应用开发相关目录
  • 简介
  • 代码

简介

最近要做一些大模型多模态方面的工作,但缺少图像数据,这里分享一个脚本,可将视频抽帧为图像数据集

代码

# coding=utf-8
import os
import cv2
videos_src_path = "C:\Users\Administrator\Desktop\shuju\tupianjianji\shipin\"
# video_formats = [".MP4", ".MOV"]          我的数据集都是.mp4所以不需要进行分类判断
frames_save_path = "C:\Users\Administrator\Desktop\shuju\tupianjianji\train2\"
width = 400
height = 300
time_interval = 10
def video2frame(video_src_path, frame_save_path, frame_width, frame_height, interval):
"""
将视频按固定间隔读取写入图片
:param video_src_path: 视频存放路径
:param formats: 包含的所有视频格式
:param frame_save_path: 保存路径
:param frame_width: 保存帧宽
:param frame_height: 保存帧高
:param interval: 保存帧间隔
:return: 帧图片
"""
videos = os.listdir(video_src_path)
# def filter_format(x, all_formats):      无需判断所以这部分代码也就不需要了
#     if x[-4:] in all_formats:
#         return True
#     else:
#         return False
#
# videos = filter(lambda x: filter_format(x, formats), videos)
for each_video in videos:
# print "正在读取视频:", each_video
print("正在读取视频:", each_video)    # 我的是Python3.6
each_video_name = each_video[:-4]
os.mkdir(frame_save_path + each_video_name)
each_video_save_full_path = os.path.join(frame_save_path, each_video_name) + "/"
each_video_full_path = os.path.join(video_src_path, each_video)
cap = cv2.VideoCapture(each_video_full_path)
frame_index = 0
frame_count = 0
if cap.isOpened():
success = True
else:
success = False
print("读取失败!")
while(success):
success, frame = cap.read()
# print "---> 正在读取第%d帧:" % frame_index, success
print("---> 正在读取第%d帧:" % frame_index, success)      # 我的是Python3.6
if frame_index % interval == 0 and success:     # 如路径下有多个视频文件时视频最后一帧报错因此条件语句中加and success
resize_frame = cv2.resize(frame, (frame_width, frame_height), interpolation=cv2.INTER_AREA)
# cv2.imwrite(each_video_save_full_path + each_video_name + "_%d.jpg" % frame_index, resize_frame)
cv2.imwrite(each_video_save_full_path + "%d.jpg" % frame_count, resize_frame)
frame_count += 1
frame_index += 1
cap.release()		
def main():
video2frame(videos_src_path, frames_save_path, width, height, time_interval)
if __name__ == '__main__':
main()
本站无任何商业行为
个人在线分享 » python脚本将视频抽帧为图像数据集
E-->