当前位置: 首页 > news >正文

使用Python+OpenCV对视频抽帧保存为JPG图像

使用Python+OpenCV对视频抽帧保存为JPG图像

import os
import cv2
import time#视频文件夹路径,可修改
videoPath = 'D:\\video\\'
#保存的图片文件夹路径,可修改
savePath = 'D:\\images\\'
videolist = os.listdir(videoPath)
if not os.path.exists(savePath):os.mkdir(savePath)
video_num = 0
for video in videolist:if(video.endswith(".avi")):c = 1videofile = videoPath + videovc = cv2.VideoCapture(videofile) #读入视频文件if vc.isOpened(): #判断是否正常打开video_num = video_num + 1rval , frame = vc.read()#print("正常打开:",video)if(video_num%100 == 0):print(video_num)else:rval = Falseprint("打开失败:",video)continuetimeF = 25  #视频帧计数间隔频率,可修改try:while rval:   #循环读取视频帧rval, frame = vc.read()if(c%timeF == 0): #每隔timeF帧进行存储操作cv2.imwrite(savePath + video[:-4] + '_' + str(time.time_ns()) + '.jpg',frame) #存储为图像c = c + 1cv2.waitKey(1)except:#print("error")continuevc.release()

以上代码可以修改timeF变量控制抽帧间隔频率。

相关文章:

  • MongoDB常用命令
  • 【JAVA】十三、基础知识“接口”精细讲解!(二)(新手友好版~)
  • uniapp-商城-33-shop 布局搜索页面以及u-search
  • 云原生--基础篇-3--云原生概述(云、原生、云计算、核心组成、核心特点)
  • 【2025最新Java面试八股】如何理解MySQL的MVCC机制?
  • DeepSeek和Excel结合生成动态图表
  • 「数据可视化 D3系列」入门第十二章:树状图详解与实践
  • K8S探针的应用
  • Rook 部署 Ceph 集群及 Kubernetes 存储对接实战
  • 【微服务】SpringBoot制作Docker镜像接入SkyWalking详解
  • Anaconda 与 Miniconda 的差异详解
  • [论文阅读]ConfusedPilot: Confused Deputy Risks in RAG-based LLMs
  • 树莓派学习专题<8>:使用V4L2驱动获取摄像头数据--获取摄像头支持的分辨率
  • 进行性核上性麻痹饮食指南:科学膳食提升生活质量
  • SQL中函数
  • C# 跨进程 临界区 互斥 进程锁
  • 轻量级景好鼠标录制器
  • 基于javaweb的SSM+Maven小区失物招领系统设计与实现(源码+文档+部署讲解)
  • 从代码学习深度学习 - 编译器和解释器 PyTorch 版
  • 一个C#扩展库,让Dapper的CRUD操作更简单
  • 东方富海陈玮: 什么样的创业者能让天使投资人愿意下注
  • 致敬劳动者!今年拟表彰2426名全国劳动模范和先进工作者
  • 人民日报钟声:世界决不能重回弱肉强食的时代
  • 菲律宾群岛地区发生5.6级地震,震源深度20千米
  • 从黄仁勋到美国消费者,都在“突围”
  • 工信部:加快推进6G技术研发等,前瞻布局和培育面向6G的应用产业生态