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

yipeiwu_com5年前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中的递归函数

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,...

Pytorch中的variable, tensor与numpy相互转化的方法

Pytorch中的variable, tensor与numpy相互转化的方法

在使用pytorch作为深度学习的框架时,经常会遇到变量variable、张量tensor与矩阵numpy的类型的相互转化的问题,本章结合这实际图像对此转化方法进行实现。 1.加载需要用...

python逆序打印各位数字的方法

如下所示: # -*- coding: utf-8 -*- # raw_input获取给定的一个不多于5位的正整数。 # 一、求它是几位数; # 二、逆序打印出各位数字。 def f...

Python写的英文字符大小写转换代码示例

几行代码的小工具,用于进行如下转换 TRANSACTIONS ON CLOUD COMPUTING =》 Transactions On Cloud Computing 复制代码 代码如...

python中使用序列的方法

本文实例讲述了python中使用序列的方法。分享给大家供大家参考。具体如下: 列表、元组和字符串都是序列,但是序列是什么,它们为什么如此特别呢?序列的两个主要特点是索引操作符和切片操作符...