罗田县升平网络工作室,一家专业从事网站建设的工作室

罗田县社区

 找回密码
 加入罗田县社区

QQ登录

只需一步,快速开始

快捷登录

回帖中禁止出现的内容,违者将被直接永久禁止访问,删除ID处理 :1.违反法律法规 ,包括但不限于出现带有政治、色情、暴恐信息等内容;2.恶意攻击内容,包括但不限于:恶意攻击党和政府、辱骂跟帖者、攻击主题发布者、不服从论坛管理、挑衅管理者、挑战版规等;3.广告、推广内容,尤其出现带有病毒、恶意代码、广告链接等内容,包括但不限于:QQ号、文字QQ号、微信号、手机号、文字手机号、第三方网址、单位公司名称、网站名称等;4.回帖贴出该主题隐藏资源链接或其它主题隐藏资源链接的行为。
查看: 523|回复: 0

Python将视频转换为图片介绍

[复制链接]

662

主题

620

帖子

735

积分

社区达人

积分
735
发表于 2022-1-12 07:12:46 | 显示全部楼层 |阅读模式
目录


  • 前言
  • 代码展示
  • 结果展示
  • 总结

前言

代码让人头秃,可是我喜欢上了代码的逻辑感和代码解决问题的力量。
(我要对这个专题的图片进行修改,缩小看和我导头像有点像QAQ)

代码展示

此段代码能够实现多个文件夹中多个视频片段的转换,代码的具体含义可以参考注释。
具体操作为将此段代码复制粘贴到创建好的main.py文件,配置好第63行的源文件路径,然后运行。
  1. # 将四个文件夹中的多个视频文件转换为图片import cv2import osnumber_in_dir = []  # 可以去掉def video2image(video_path, image_save_dir):    # 1. 将图片的存储路径加上源文件的文件夹名,如'Coffee_room_01'等。    if os.path.exists(video_path):  # 判断源路径是否正确        print(video_path + '\t ok')        if video_path.split('\\')[-2] != 'Videos':  # 这个根据我文件路径自行添加的            image_save_dir += video_path.split('\\')[-2] + '\\'        else:            image_save_dir += video_path.split('\\')[-3] + '\\'        number_in_dir.append(len(os.listdir(video_path)))  # 可以去掉    else:        print(video_path + ' \033[0;37;41merror\033[0m')        return    # 2. 依次读取源文件里的文件,如果后缀名是‘avi'或 'MP3',则创建一个关于文件名的子文件夹    files_in_video_path_list = os.listdir(video_path)    print(len(files_in_video_path_list))  # 获取当前文件夹下文件个数,用来判断是否有其他类型的文件    file_count = 0  # 用于统计个数,验证是否全为视频文件,会与len(files_in_video_path_list)进行比较    for file_in_video_path in files_in_video_path_list:        file_name = os.path.basename(file_in_video_path)        if file_name.split('.')[-1] == 'avi' or file_name.split('.')[-1] == 'mp3':            file_count += 1  # 视频文件数+1            every_video_save_dir = file_name.split('.')[0] + '\\'            if not os.path.exists(image_save_dir + every_video_save_dir):  # 创建属于相应文件夹的存储路径                os.makedirs(image_save_dir + every_video_save_dir)        else:            print(' \033[0;37;41merror\033[0m')            break        # 3. 打印正在处理文件的序号和他的文件名,并开始转换        print(str(file_count) + ':' + file_name)        cap = cv2.VideoCapture(video_path + file_name)        flag = cap.isOpened()        if not flag:            print("open" + video_path + file_name + "error!")        frame_count = 0  # 给每一帧标号        while True:            frame_count += 1            flag, frame = cap.read()            if not flag:  # 如果已经读取到最后一帧则退出                break            if os.path.exists(image_save_dir + every_video_save_dir + str(frame_count) + '.jpg'):  # 在源视频不变的情况下,如果已经创建,则跳过                break            cv2.imwrite(image_save_dir + every_video_save_dir + str(frame_count) + '.jpg', frame)        cap.release()        print(file_name + ' save to ' + image_save_dir + every_video_save_dir + 'finished ')  # 表示一个视频片段已经转换完成    if file_count != len(files_in_video_path_list):        print(' \033[0;37;41Maybe loss something\033[0m')if __name__ == '__main__':    # 需要转换的文件路径列表(自定义修改)    video_path_list = ['E:\\Datasets_FallDetection\\2 LE2I\Coffee_room_01\\Coffee_room_01\\Videos\\',                       'E:\\Datasets_FallDetection\\2 LE2I\Home_01\\Home_01\Videos\\',                       'E:\\Datasets_FallDetection\\2 LE2I\Lecture_room\\Lecture room\\',                       'E:\\Datasets_FallDetection\\2 LE2I\\Office\\Office\\']    # 预期存储在的主文件夹,即'result'文件夹    image_save_dir = '.\\result\\'    # 进行转换    for video_path in video_path_list:        video2image(video_path, image_save_dir)
复制代码
结果展示

将创建’result’主文件夹和副文件夹


每个副文件夹下都将生成与视频名相对应的子文件夹,并按视频帧数顺序转换为jpg图片。


终端上将提示正在处理的文件路径,正在对哪个视频进行转换和转换完成提示。



总结

到此这篇关于Python将视频转换为图片介绍的文章就介绍到这了,更多相关Python视频转换为图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:http://www.jb51.net/article/233610.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
打赏鼓励一下!
*罗田县社区ltxbbs.cn 罗田人自己的社区!
回复

使用道具 举报

回帖中禁止出现的内容,违者将被直接永久禁止访问,删除ID处理 :1.违反法律法规 ,包括但不限于出现带有政治、色情、暴恐信息等内容;2.恶意攻击内容,包括但不限于:恶意攻击党和政府、辱骂跟帖者、攻击主题发布者、不服从论坛管理、挑衅管理者、挑战版规等;3.广告、推广内容,尤其出现带有病毒、恶意代码、广告链接等内容,包括但不限于:QQ号、文字QQ号、微信号、手机号、文字手机号、第三方网址、单位公司名称、网站名称等;4.回帖贴出该主题隐藏资源链接或其它主题隐藏资源链接的行为。

浏览排行

(36663)2019-11-5 公共云钱包资金盘骗局揭秘: 网络传销+原始股骗局合体!

(20853)2019-12-20 12月17日 邓智天法院直播庭审疑问全解答!

(19844)2019-12-1 环保币GEC资金盘骗局最新消息: 即将崩盘!

(14887)2018-12-24 罗田县人民法院公布【第五批失信被执行人名单】 ...

(14190)2019-11-3 曝光!PTFX已经崩盘跑路,投资者血流成河!

(13339)2019-11-9 巨胸肥臀大长腿,嫩模糯美子真人COS不知火舞福利污图

(11694)2019-8-7 湖北电力网上缴费,支付宝绑定户号的初始密码是什么?

(11344)2018-10-17 罗田县人民政府“12345”市民服务热线服务指南

(10131)2019-12-11 公安定性了, 趣码是非法传销! 趣码怎么退回365元?

(9969)2019-12-15 满足你对女同事的幻想 风骚秘书阿朱销魂眼神勾魂摄魄

最新发表

[无理取闹]2022-8-18 德媒述评:“屋顶”成中国光伏发展新蓝海

[开心每一天]2022-8-18 港媒:中国完善期货市场法律框架

[zhanwenfang]2022-8-18 港媒报道:中国多地出台政策鼓励生育

[jiantengxie]2022-8-18 现场视频!东部战区飞行员俯瞰澎湖列岛

[Mandy1008]2022-8-18 东部战区位台岛周边海空域组织多军兵种联合战备警巡和实战化演练

[ulteawx]2022-8-18 俄媒:俄吊销捷克和保加利亚企业军机维修许可证

[不要问我]2022-8-18 俄国防部:一架英国侦察机侵犯俄领空遭驱离

[曾磊]2022-8-18 俄媒:斯洛伐克向乌克兰提供多门自行榴弹炮

[不要问我]2022-8-18 外媒:新西兰将向英国派遣120名军事人员协助培训乌军人

[hylin]2022-8-18 法媒:以军空袭叙境内目标致多人死伤

QQ|Archiver|手机版|小黑屋|罗田县社区LTXBBS.CN ( 鄂ICP备18029072号-1 )|网站地图


手机扫一扫继续访问
[免责声明]
本站系本网编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间删除内容!
[声明]本站文章版权归原作者所有 内容为作者个人观点 本站只提供参考并不构成任何投资及应用建议。

进入社区 | 发表新帖 | 百度收录 |
技术提供:罗田县升平网络工作室
站长Email:admin@ltxbbs.cn
投诉电话(刮开查看):15374567400

GMT+8, 2022-8-18 21:41 , Processed in 0.121362 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表