使用Python和OpenCV从视频中提取图片
off999 2025-05-05 18:07 24 浏览 0 评论
前言
OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,用于实时计算机视觉。它包含许多用于图像和视频处理的优化算法
在工作中我们有时候需要从视频里面提取关键文本,数据等内容。本文将带你如何使用Python和OpenCV库从视频中提取图片。我们将分步骤讲解以下代码,并讨论如何优化提取过程。
1.我们需要导入所需的库:
import cv2
import os
import sys2.我们定义图片保存路径:
可以是绝对路径,也可以是相对路径
dstPath =r"./testCut"3.我们打开视频文件:
cap = cv2.VideoCapture("test.mp4")如果视频打开失败,我们将打印提示错误消息并退出程序:
if not cap.isOpened():
print("视频打开失败,退出程序")
sys.exit()4.我们使用一个循环来读取视频帧:
frame_count =0
whileTrue:
#统计计数
frame_count +=1
#读取视频帧
ret, frame = cap.read()5.每个读取成功的帧,保存为图片:
if ret:
image_name ="image"+str(frame_count) +".jpg"
save_path = os.path.join(dstPath,image_name)
cv2.imwrite(save_path,frame)
else:
print("读取帧失败")
break6.释放资源并关闭窗口:
cap.release()
cv2.destroyAllWindows()7.优化提取过程:
- 按帧间隔提取图片:如果视频帧率较高,可以设置一个间隔,只提取部分帧。例如,每隔10帧提取一帧。
if frame_count %10==0:
# 保存图片- 按时间间隔提取图片:可以设置一个时间间隔,只提取特定时间点的帧。例如,每隔5秒提取一帧。
if frame_count %(5* fps) ==0:
# 保存图片- 按关键帧提取图片:可以使用OpenCV的cv2.VideoCapture.get()函数检查当前帧是否为关键帧,只提取关键帧。
if cap.get(cv2.CAP_PROP_KEYFRAME) ==1:
# 保存图片- 按需求提取图片:可以根据具体需求设置条件,只提取满足条件的帧。例如,可以使用OpenCV的图像处理功能检测特定物体,只提取包含该物体的帧。
完整代码如下
import cv2
import os
import sys
dstPath =r"./testCut"
if not cap.isOpened():
print("视频打开失败,退出程序")
sys.exit()
frame_count =0
whileTrue:
#统计计数
frame_count +=1
#读取视频帧
ret, frame = cap.read()
if ret:
image_name ="image"+str(frame_count) +".jpg"
save_path = os.path.join(dstPath,image_name)
cv2.imwrite(save_path,frame)
else:
print("读取帧失败")
break
cap.release()
cv2.destroyAllWindows()
关于opencv基本用法,请参考opencv-python,一个超神的Python库这篇文章
总结:
本文介绍了如何使用Python的OpenCV库从视频中提取图片。我们分步骤讲解了代码,并讨论了如何优化提取过程。通过调整参数和条件,可以根据实际需求提取所需的图片。
相关推荐
- ps手机版下载中文免费版2025
-
ps2023对电脑要求高。ps2022版本对电脑配置要求是:1、内存要求在一32G和64G之间。2、硬盘要求选择7200转机械硬盘,4k以上分辨,就选择SSD固态硬盘。3、CPU要求睿频在4.1GHZ...
- 苹果电脑如何下载windows系统
-
下载后安装BootCamp,之后在[应用程序]的[实用程序]中找到BootCamp助理,下面就可以开始安装Windows前的准备工作了。 第一步是要用BootCamp助理刻录一张驱动程序的CD...
- efi系统分区什么意思(efi系统分区的作用)
-
ud空间是指存放PE启动文件的分区;efi空间是指存放UEFI启动文件的分区。系统U盘(PE启动盘)的制作方法,一共分为三种。三分区法是其中的一种,三分区法就是一个U盘被分成了三个区,两边的分区是隐藏...
- 无需u盘重装系统(无需u盘安装系统)
-
可以通过以下步骤在不使用U盘的情况下重装Win7系统:首先需要备份您的电脑中的重要数据,以免在系统重装时丢失。进入系统的“控制面板”,找到“系统与安全”选项并单击进入。在“系统与安全”页面中,找到“备...
- 改无线网密码的网址(改无线网密码的网站)
-
移动宽带无线网改密码,可以在移动网上营业厅办理,但更简单的办法是通过短信办理(详见如下第2条): 移动无线宽带短信操作方式: 1)开通业务:编写短信“KTWLAN”发送至10086。 注:短...
- c盘满了却不敢删(c盘满了清不掉)
-
1、运用磁盘清理软件清理C盘,大约可为C盘释放50M-800M空间。2、关闭休眠功能,在开始菜单的运行里输入powercfg-hoff指令,关闭休眠,此文件实际大小和物理内存是一样的,大约可以...
-
- 联想笔记本电脑怎么打开摄像头
-
联想笔记本怎么打开摄像头?1、点击电脑开始菜单栏,在弹出的窗口中点击【设置】。2、在”隐私和安全性“面板中点击【相机】选项。3、将【摄像头访问】右侧的开关打开。材料/工具:以联想Y460笔记本为例。操作步骤如下:1、在电脑的桌面,打开我...
-
2025-12-12 19:51 off999
- win732纯净版系统gho(win732纯净版下载)
-
一,win7x32gho指的是32位的Windows7操作系统,gho指的是ghost方式封装的镜像文件,一般这种都是盗版系统。二,如果自己需要安装64位系统就不要选这个,内存低于3GB可以安装win...
- pscs6激活账户(pscs6激活账户和序列号免费)
-
pscs6破解补丁是AdobePhotoShopCs6版本的破解激活补丁,使用后不会弹出购买窗口,实现完美破解,无任何限制破解版软件扩展功能好像不好用!要用需要的扩展功能可以在网上下载需要的插件...
- 键盘皮肤下载(键盘皮肤下载软件免费有音效)
-
1、vivo自带的输入法不能更换键盘皮肤;2、建议可以下载第三方输入法更换皮肤,比如:搜狗输入法等;3、下载第三方输入法之后需要在设置-更多设置-输入法中设置为第三方的输入法使用;4、然后在输入法界面...
- win11如何格式化硬盘(win11硬盘分区怎么改成gpt)
-
win11系统格式化电脑和硬盘的方法如下1、打开本地磁盘管理页面,右键点击需要格式化的磁盘,选择【格式化】。2、在弹出的窗口中,勾选【快速格式化】,点击【开始】。3、最后等待格式化完成即可。1.首先我...
- 还原ghost文件(ghost怎么还原)
-
ghost还原系统的前提是你的电脑里面装有ghost备份还原软件,并已经为计算机做过ghost系统备份,它使得电脑系统出现小故障,不能启动时,能够快速的恢复系统。其操作方法步骤如下:1、下载ghost...
- 安卓虚拟机运行windows(安卓虚拟机运行机制)
-
安卓无法直接安装Windows虚拟机,但是可以通过使用虚拟机应用或者远程桌面软件来连接已安装了Windows系统的电脑,达到在安卓系统中使用Windows的效果。其中,使用虚拟机应用需要先root安卓...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
使用 python-fire 快速构建 CLI_如何搭建python项目架构
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
