Python将视频转换为图片介绍

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

前言

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

代码展示

此段代码能够实现多个文件夹中多个视频片段的转换,代码的具体含义可以参考注释。
具体操作为将此段代码复制粘贴到创建好的main.py文件,配置好第63行的源文件路径,然后运行。

# 将四个文件夹中的多个视频文件转换为图片
import cv2
import os

number_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视频转换为图片内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 如何用python反转图片,视频

    利用python反转图片/视频 准备:一张图片/一段视频 python库:Pillow,moviepy 安装库 pip install Pillow -i https://mirrors.aliyun.com/pypi/simple pip install moviepy -i https://mirrors.aliyun.com/pypi/simple 默认官方镜像源,我这里尝试的时候没有任何进度.切换到国内的源,比如阿里镜像,清华镜像即可.第一次使用国内源,简直是神速! 反转效果 反转后 实

  • Python实现图片与视频互转代码实战(亲测有效)

    一. 图片转视频 任务需求背景 在标注数据的过程中,需要[反复]浏览大量图片(万张以上的数量级),确认图片中的目标类别以及室内户型布局.但是,在电脑上浏览图片有很大的不足:(a)需要持续点击鼠标或者键盘:(b)图片加载跟不上点击速度. 值得注意的是:网上有很多代码(图片转视频),但是真正能用的几乎很少,本博文的代码经过测试,可以成功生成视频. 代码依赖库 opencv-python==4.5.2 numpy==1.19.2 glob(python自带模块) 代码实战 基本步骤如下: a. 使用g

  • Python实现图片和视频的相互转换

    目录 使用背景 一.视频转图像 二.图像转视频 使用背景 有时候我们需要把很多的图片合成视频,或者说自己写一个脚本去加快或者放慢视频: 也有时候需要把视频裁剪成图片,进行后续操作. 这里提供两种方法,一是视频转图像:二是图像转视频.  一.视频转图像 有时候我们需要把文件夹中的视频按照一定的帧率截取图片,如一秒取三张,为了实现这一需求,我特地编写了代码实现,并且附上了十分详细的说明,为了方便大家改代码实现自己需求(主要为了照顾刚学python的或者只需要用这一需求的小伙伴),本博文的特点如下:

  • Python将视频转换为图片介绍

    目录 前言 代码展示 结果展示 总结 前言 代码让人头秃,可是我喜欢上了代码的逻辑感和代码解决问题的力量.(我要对这个专题的图片进行修改,缩小看和我导头像有点像QAQ) 代码展示 此段代码能够实现多个文件夹中多个视频片段的转换,代码的具体含义可以参考注释.具体操作为将此段代码复制粘贴到创建好的main.py文件,配置好第63行的源文件路径,然后运行. # 将四个文件夹中的多个视频文件转换为图片 import cv2 import os number_in_dir = [] # 可以去掉 def

  • Python实现视频转换为字符画详解

    上次写了个华强买瓜字符视频的帖子,下面有人问如何保存,所以这次就写一个能将字符画视频保存下来的帖子,然而时不待我,华强纪元已经结束,现在是穿山甲的时代了. 首先读取视频,并转为字符.视频是从B站下载的,地址<激战江南>穿山甲名场面. 由于B站直接下载的视频为flv格式,而imageio并不支持,尽管可以用opencv来读取,但相比之下,用ffmepg转个码也不复杂,这样可以最大限度地利用华强买瓜的代码. 另外,视频素材过长不适合代码演示,所以从第2:10进行截取15s. 在命令行中输入 >

  • Python提取视频帧图片实例代码

    为了从视频中提取每一帧图片,编写Python脚本实现该功能 video_path为指定的视频路径 interval为指定分割视频是是否跳帧,默认不跳帧,即全部分割 width, height 为指定对分割帧图片调整大小,默认不调整 该脚本自动对帧图片编号,设置为7位编码,最多可分割9999999帧图片,即92小时的30FPS视频 # !/usr/bin/env python # -*- coding: utf-8 -*- # ===================================

  • python将视频转换为全字符视频

    简介 如何简单的使用python来实现将一部视频转换为字符画视频的效果. 其实,大家都知道视频就是一帧一帧的图片构成的. 那么如今我们想要实现,将视频转换为字符视频,那么是不是可以认为只要将一部视频全部逐帧拆解成图片,然后采取和以前相同的将图片转换为字符画的算法即可.然后在将这些图片按照原先的视频的格式封装起来就可以了. 既然有了想法,那接下来,自然是开始实际开发了. 代码 以下是相关部分的代码: #-*- coding:utf-8 -*- import argparse import os i

  • Python提取视频中图片的示例(按帧、按秒)

    一.按帧提取 #coding=utf-8 import os import cv2 def save_img(): #提取视频中图片 按照每帧提取 video_path = r'D:\\test\\' #视频所在的路径 f_save_path = 'D:\\aaa\\' #保存图片的上级目录 videos = os.listdir(video_path) #返回指定路径下的文件和文件夹列表. for video_name in videos: #依次读取视频文件 file_name = vide

  • 使用Python opencv实现视频与图片的相互转换

    因为最近要经常转换数据集进行实验,因此记录一下. 1.视频转图片 即为将视频解析为一帧一帧的图片: import cv2 vc=cv2.VideoCapture("/home/hqd/PycharmProjects/1/1/19.MOV") c=1 if vc.isOpened(): rval,frame=vc.read() else: rval=False while rval: rval,frame=vc.read() cv2.imwrite('/home/hqd/PycharmP

  • Python将视频或者动态图gif逐帧保存为图片的方法

    本文是基于opencv将视频和动态图gif保存为图像帧.可以根据输入视频格式的不同,修改第21行. 对动图的处理不同于视频,PIL库包含对图像序列的基本支持.当打开gif图像时,自动加载第一帧.当图像读取完成时,抛出EOFError异常.我们可以使用seek()与tell()函数完成图像帧的读取. 本代码的前部分是对文件的读取.数据集文件结构如下: |--datasets |--action1 action1_1.gif action1_2.gif ...... |--action2 actio

  • 利用Python小工具实现3秒钟将视频转换为音频

    最近,有读者微信上私聊我,想让我写一篇视频批量转换成音频的文章,我答应了,周末宅家里把这个小工具做出来了. 这样,对于有些视频学习文件,我们可以批量转换成音频文件,学习方式更多样化了. 之前也用过 ffmpeg 处理视频文件.ffmpeg 这个程序处理视频是好用,但是有没有更轻便的呢?可以不下载这个程序吗?还真有,Python 里有 ffmpeg 相关的库:ffmpy3. ffmpy3 是 ffmpy 的一个分支,它是一个简单的 FFmpeg 命令行包装程序.ffmpy 实现了一个 Python

  • 通过Python将MP4视频转换为GIF动画

    目录 运行环境 如何从 MP4 视频中提取帧 将帧变成 GIF 创建 MP4 到 GIF GUI Python 可用于读取常见的 MP4 视频格式并将其转换为 GIF动画.当然,如果你愿意,你可以使用预先构建的软件,但是自己做很有趣(并且是一种很好的学习体验). 在本教程中,你将学习以下内容: 如何从 MP4 视频中提取帧 将帧转换为 GIF 创建 MP4 到 GIF GUI 让我们开始吧! 运行环境 你需要安装 OpenCV 绑定以读取 MP4 文件并将视频中的每一帧转换为 JPG 文件.安装

  • Python实现视频分解成图片+图片合成视频

    目录 一.python视频拆分+图片合成(源码一) 1.python视频拆分 2.python图片合成 二.python视频拆分+图片合成(源码二) 三.python视频拆分(源码三) 一.python视频拆分+图片合成(源码一) 1.python视频拆分 import cv2 def video2frame(videos_path,frames_save_path,time_interval): ''' :param videos_path: 视频的存放路径 :param frames_sav

随机推荐