使用Python实现跳帧截取视频帧

yipeiwu_com6年前Python基础

本文实例为大家分享了Python跳帧截取视频帧的具体代码,供大家参考,具体内容如下

可以自由设定时长来截取视频,经实测效果理想。期间遇到的一个麻烦是我的视频文件在D:盘,在原视频D盘目录上不能保存截取的图片文件,后改为在C:盘上保存,正常。具体原因不明,有网友知道原因所在,请告知。

import cv2
import os

def save_img():
 video_path =r'读入视频路径'
 videos = os.listdir(video_path)
 for video_name in videos:
   videopath=video_path+'\\'+video_name
   print(videopath)
   vc = cv2.VideoCapture(videopath) #读入视频文件  
   c = 1
   if vc.isOpened(): # 判断是否正常打开
   rval, frame = vc.read()
   else:
   rval = False 
   timeF = 300 # 视频帧计数间隔频率
   a=1
   while rval: # 循环读取视频帧
   rval, frame = vc.read()
   if (c % timeF == 0): # 每隔timeF帧进行存储操作
    print(video_path+'\\' + str(a) + '.jpg')
    #不能在D:盘原视频目录上保存图像文件,原因不明
    cv2.imwrite(r'保存图片文件路径 '+'\\'+ str(a) + '.jpg', frame)
    cv2.imshow('Video',frame)
    a+=1
   c = c + 1
   m=cv2.waitKey(1)
   vc.release()
save_img()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python flask 多对多表查询功能

我们在flask的学习中,会难免遇到多对多表的查询,今天我也遇到了这个问题。那么我想了好久。也没有想到一个解决的办法,试了几种方法,可能是思路的限制我放弃了,后来,我就在网上百度,可是发...

在Python的一段程序中如何使用多次事件循环详解

背景 本文主要给大家介绍了关于在Python一段程序中使用多次事件循环的相关内容,我们在Python异步程序编写中经常要用到如下的结构 import asyncio async d...

Python2.7编程中SQLite3基本操作方法示例

本文实例讲述了Python2.7中SQLite3基本操作方法。分享给大家供大家参考,具体如下: 1、基本操作 # -*- coding: utf-8 -*- #!/usr/bin/e...

TFRecord格式存储数据与队列读取实例

TFRecord格式存储数据与队列读取实例

Tensor Flow官方网站上提供三种读取数据的方法 1. 预加载数据:在Tensor Flow图中定义常量或变量来保存所有数据,将数据直接嵌到数据图中,当训练数据较大时,很消耗内存...

Python的Bottle框架的一些使用技巧介绍

之前对bottle做过不少的介绍,也写过一些文章来说明bottle的缺点,最近发现其实之前有些地方说的不太公平,所以趁此机会也来更正一下。     bott...