希望通过cv2.VideoCapture类截取视频帧图片,期间只能截取视频的每帧图片,不能跳帧截取图片,原来是在读取视频帧的时候没有写入ret, frame = cv2.VideoCapture.read()。

ret, frame = cv2.VideoCapture.read()函数输出的是两个参数,第一个参数ret 为True 或者False,代表有没有读取到图片;第二个参数frame表示截取到一帧的图片。

修改前代码(只能逐帧逐帧截取视频帧图片):

import cv2
import os
def save_img():
    video_path = r'你的视频绝对路径'
    videos = os.listdir(video_path)
    for video_name in videos:
        file_name = video_name.split('.')[0]
        folder_name =  file_name
        os.makedirs(folder_name,exist_ok=True)
        vc = cv2.VideoCapture(video_path+video_name) #读入视频文件
        c = 1
        if vc.isOpened():  # 判断是否正常打开
            rval, frame = vc.read()
        else:
            rval = False
 
        timeF = 300  # 视频帧计数间隔频率
 
        while rval:  # 循环读取视频帧
            pic_path = folder_name + '/'
            if (c % timeF == 0):  # 每隔timeF帧进行存储操作
                cv2.imwrite(pic_path + file_name + '_' + str(c) + '.jpg', frame)#存储图像
            c = c + 1
            cv2.waitKey(1)
        vc.release()
save_img()

修改后代码(能够跳帧截取视频帧):

import cv2
import os
def save_img():
    video_path = r'D:\python3-PycharmProjects1\video2picture\20180911-12-48-31\data\123/'
    videos = os.listdir(video_path)
    for video_name in videos:
        file_name = video_name.split('.')[0]
        folder_name =  file_name
        os.makedirs(folder_name,exist_ok=True)
        vc = cv2.VideoCapture(video_path+video_name) #读入视频文件
        c = 1
        if vc.isOpened():  # 判断是否正常打开
            rval, frame = vc.read()
        else:
            rval = False
 
        timeF = 300  # 视频帧计数间隔频率
 
        while rval:  # 循环读取视频帧
            rval, frame = vc.read()
            pic_path = folder_name + '/'
            if (c % timeF == 0):  # 每隔timeF帧进行存储操作
                cv2.imwrite(pic_path + file_name + '_' + str(c) + '.jpg', frame)  # 存储为图像,保存名为 文件夹名_数字(第几个文件).jpg
            c = c + 1
            cv2.waitKey(1)
        vc.release()
save_img()

cv2读视频文件取帧图片相关推荐

  1. 查看视频的IPB帧,IPB帧编码顺序,视频的第一帧图片

    > 如何查看视频的IPB帧 Android, 如何获取视频的每一帧的信息 视频 = 图片.图像(摄像头) + 声音(麦克风) : 谷歌官方给我们的提供的api接口类:MediaMetadataR ...

  2. 如何获取网络视频(或者说后台返回视频URL)第一帧图片以及获取本地视频的第一帧图片

    在项目开发的时候,有可能会有这样的一种需求:有一段视频需要展示给用户,在界面上先展示视频上的某一帧图片,用户点击的时候再去获取视频资源进行播放.这时,服务器会先给我们返回视频的url,这个时候就需要通 ...

  3. C++_MFC读视频文件

    下面这段代码的是:打开视频,弹出通用对话框,选择要播放的视频文件 CString filter;filter = "所有文件(*.avi,*.3gp,*.mp4,*.rm,*rmvb,*fl ...

  4. php截取视频第一帧为图片,把视频变成一帧一帧的图片(ae怎么把视频变成单帧) 视频截图视频画面每帧图片截取...

    AE怎么把视频变成单帧?这是小编今天要与大家讨论及解决的一个问题.在视频后期处理中,有时为实现某个场景效果,需要把视频中的某帧变成静态帧图片:或者需要视频截图视频画面每帧图片截取出来,把视频变成一帧一 ...

  5. 使用ffmpeg处理 视频文件中帧间时间戳异常、关键帧间隔异常

    2019独角兽企业重金招聘Python工程师标准>>> [原因分析] V网通的视频文件经过了编辑工具编辑 1.视频文件中帧间时间戳异常(理论两帧差在40毫秒左右,V网通的有11777 ...

  6. 视频文件按帧抓取图像并保存

    一.原材料: win10,opencv3.0,vs2013,test.MP4.只需要配置好opencv的环境就好,3.0可以直接用MP4类型的视频数据. 二.实现功能: 1.显示视频的具体信息,帧数, ...

  7. php视频生成指定帧图片,python3.5 cv2 获取视频特定帧生成jpg图片

    假如文件夹有大量视频文件,需求目标是想从每个视频中提取一帧作为视频的一个封面图片,本文利用opencv-python模块实现需求.结合自己的工作,做一下简单的记录,原本想生成可传参数的exe文件,以方 ...

  8. python(二)进阶之cv2读取视频文件或摄像头,并进行保存帧图像或视频

    版本 # 4.5.1 python import cv2 cv2.__version__ 函数 # 参数0表示默认为笔记本的内置第一个摄像头,如果需要读取已有的视频则参数改为视频所在路径, # 例如: ...

  9. python读视频文件_python读取和保存视频文件

    如何用python实现视频关键帧提取并保存为图片?也许你会觉得对小编多做一点事你会觉得你很爽,可是在小编看来这是不屑的 import cv2vc = cv2.VideoCapture('Test.av ...

最新文章

  1. sqlserver怎么将excel表的数据导入到数据库中
  2. php写接口多页面,PHP开发很火的随机毒鸡汤网页和API接口
  3. 傅里叶变换库FFTW的安装配置(VS2010)
  4. 王者荣耀服务器维护bug,8月23日王者荣耀ios版更新一直显示维护是什么情况?更新出现bug 附处理方法...
  5. Vue封装预约日期插件和发布到npm上
  6. twisted mysql_在Twisted下用MySQLadbapi获取自增id
  7. java页面要素_Web前端入门技术之网页制作三要素
  8. BZOJ 4992: [Usaco2017 Feb]Why Did the Cow Cross the Road
  9. asp.net中异步调用WebService(异步页)[转]
  10. preg_match 参数获取两个_「死磕 Spring」—– IOC 之 获取 Document 对象
  11. java文件中获取创建日期_如何在Java中获取文件的上次修改日期
  12. Best of Best系列(1)——CVPR
  13. 小程序源码:酒桌扑克娱乐喝酒小游戏-多玩法安装简单
  14. matlab互相关函数并画图,自相关函数和互相关函数的matlab计算和作图
  15. 文件或目录损坏,详细教您文件或目录损坏且无法读取怎么办
  16. PHICOMM路由器无线扩展的设置方法(吐槽一下)
  17. 华文行楷字帖欣赏_毛笔行书欣赏,华文行楷在线转换,偏旁部首练字帖,
  18. 微信小程序怎么开通(自己申请开通微信小程序的方法)
  19. 科学计算基础软件包Numpy学习 02
  20. 与迭代次数有关的一种差值结构

热门文章

  1. 微信支付后“自动”绑定用户手机号与公众号
  2. Java泛型中的T代表什么
  3. 苹果id可以彻底注销吗_公司注销之后商标可以转让给个人吗?
  4. 开源微信小程序-1:天天任务清单
  5. Mac OS X: 如何快速锁屏
  6. 前端开发利器--VScode(Visual Studio Code)
  7. 微信小程序星星评价,滑动星星评价+点击星星评价效果
  8. win7安装oracle10g需要注意的问题
  9. Vue清除定时器方法
  10. 有关短信息回执的解析处理