东莞网站建议,简历电商网站开发经验介绍,网页设计网站规划,wordpress页面加载时间插件AI应用开发相关目录 本专栏包括AI应用开发相关内容分享#xff0c;包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群
AI应用开发流程概…AI应用开发相关目录 本专栏包括AI应用开发相关内容分享包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群
AI应用开发流程概述Visual Studio Code及Remote Development插件远程开发git开源项目的一些问题及镜像解决办法python实现UDP报文通信python实现日志生成及定期清理Linux终端命令Screen常见用法python实现redis数据存储python字符串转字典python实现文本向量化及文本相似度计算python对MySQL数据的常见使用一文总结python的异常数据处理示例基于selenium和bs4的通用数据采集技术附代码基于python的知识图谱技术一文理清python学习路径Linux、Git、Docker常用指令linux和windows系统下的python环境迁移linux下python服务定时自启动windows下基于python语言的TTS开发python opencv实现图像分割python使用API实现word文档翻译yolo-world”目标检测届大模型“爬虫进阶多线程爬虫python使用modbustcp协议与PLC进行简单通信ChatTTS开源语音合成项目sqlite性能考量及使用附可视化操作软件拓扑数据的关键点识别算法python脚本将视频抽帧为图像数据集 文章目录 AI应用开发相关目录简介代码 简介
最近要做一些大模型多模态方面的工作但缺少图像数据这里分享一个脚本可将视频抽帧为图像数据集
代码
# codingutf-8
import os
import cv2videos_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 10def 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_videoprint(正在读取视频, each_video) # 我的是Python3.6each_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 0frame_count 0if cap.isOpened():success Trueelse:success Falseprint(读取失败!)while(success):success, frame cap.read()# print --- 正在读取第%d帧: % frame_index, successprint(--- 正在读取第%d帧: % frame_index, success) # 我的是Python3.6if frame_index % interval 0 and success: # 如路径下有多个视频文件时视频最后一帧报错因此条件语句中加and successresize_frame cv2.resize(frame, (frame_width, frame_height), interpolationcv2.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 1frame_index 1cap.release() def main():video2frame(videos_src_path, frames_save_path, width, height, time_interval)
if __name__ __main__:main()