专栏首页中科院渣渣博肆僧一枚python 用opencv接口把视频逐帧转化为图片

python 用opencv接口把视频逐帧转化为图片

好了,接下来我要做一个实际的深度学习图像分割的小项目,项目内容是从一堆拍摄海面的图片中将白浪花分割出来,这个项目的分割只对白浪花感兴趣,所以最后应该是01分割,非黑即白。目前收到800G左右的数据,视频格式,每段大约50分钟。首先要做的就是从这些视频中把每一帧的图片导出来,变成图片。

这里首先有一个小插曲,我发现我的视频格式一开始虽然是mp4,但是用普通的播放器播放不了,这就很诡异。于是我下载了完美解码,果然可以播放了。不过还是很诡异,于是我用格式工厂无损的转换成mp4格式,800G的数据也跑了整整一天时间,我真佛了。

下面贴上使用python 用opencv接口把视频逐帧转化为图片的程序,当然matlab也能干这个事儿,虽然我matlab比python熟,但是以后都用python编的,所以干脆用python了。

import cv2
import os
def save_img():
    video_path = 'C:/Users/86151/Desktop/test'
    videos = os.listdir(video_path)
    for video_name in videos:
        file_name = video_name.split('.')[0]
        folder_name = video_path + file_name
        os.makedirs(folder_name, exist_ok=True)
        vc = cv2.VideoCapture(video_path+'/'+video_name) 
        c=0
        rval=vc.isOpened()

        while rval:  
            c = c + 1
            rval, frame = vc.read()
            pic_path = folder_name+'/'
            if rval:
                cv2.imwrite(pic_path + str(c) + '.png', frame)
                cv2.waitKey(1)
            else:
                break
        vc.release()
        print('save_success')
        print(folder_name)
save_img()

需要特别注意:

video_path = 'C:/Users/86151/Desktop/test'

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PASCAL VOC统计各类目标数量

    于小勇
  • python的子类继承父类构造函数说明

    原文链接:https://www.runoob.com/w3cnote/python-extends-init.html

    于小勇
  • Python的progressbar模块

    The package can be installed through pip (this is the recommended method):

    于小勇
  • 深入理解AdmissionWebhook part - 1

    Admission webhooks 是接收准入请求http回调并且进行处理,分为两种类型:

    有点技术
  • Python3 面向对象概述

    Python从设计之初就已经是一门面向对象的语言,所以我们可以以面向对象的方式去编写python代码。面向对象就是将任何事情都当做对象去看待,一个对象会拥有属性...

    py3study
  • Ansible极简教程

    KangVcar
  • 大神带你 20 分钟学会 Ansible !

    小小科
  • MySQL 多表查询、连接查询(内连接、外连接)

    查询的结果是一个二维表,它是students表和classes表的“乘积”,即students表的每一行与classes表的每一行都两两拼在一起返回

    Michael阿明
  • SpringBoot入门建站全系列(十九)集成Activiti做工作流

    Activiti作为一个流行的开源工作流引擎,正在不断发展,其6.0版本以API形式提供服务,而之前版本基本都是要求我们的应用以JDK方式与其交互,只能将其携带...

    品茗IT
  • SpringBoot入门建站全系列(十九)集成Activiti做工作流

    Activiti作为一个流行的开源工作流引擎,正在不断发展,其6.0版本以API形式提供服务,而之前版本基本都是要求我们的应用以JDK方式与其交互,只能将其携带...

    品茗IT

扫码关注云+社区

领取腾讯云代金券