当前位置: 首页 > 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变量控制抽帧间隔频率。

http://www.dtcms.com/a/148292.html

相关文章:

  • 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操作更简单
  • unity脚本-FBX自动化模型面数校验
  • c语言数据结构------------归并排序(终)
  • Jenkins的地位和作用
  • 《AI大模型应知应会100篇》第32篇:大模型与医疗健康:辅助诊断的可能性与风险
  • 【人脸识别】百度人脸识别H5方案对接
  • Spring AOP + Logback + MDC全链路日志追踪
  • Cesium学习笔记——坐标系统及坐标转换
  • 实用生活c语言脚本
  • Android如何通过aspectj打造一个无侵入式动态权限申请框架
  • webpack基础使用了解(入口、出口、插件、加载器、优化、别名、打包模式、环境变量、代码分割等)