百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

使用Python和OpenCV从视频中提取图片

off999 2025-05-05 18:07 27 浏览 0 评论

前言

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,用于实时计算机视觉。它包含许多用于图像和视频处理的优化算法

在工作中我们有时候需要从视频里面提取关键文本,数据等内容。本文将带你如何使用Python和OpenCV库从视频中提取图片。我们将分步骤讲解以下代码,并讨论如何优化提取过程。

1.我们需要导入所需的库:

import cv2
import os
import sys


2.我们定义图片保存路径:

可以是绝对路径,也可以是相对路径

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("读取帧失败")
      break

6.释放资源并关闭窗口:

cap.release()
cv2.destroyAllWindows()


7.优化提取过程:

  1. 按帧间隔提取图片:如果视频帧率较高,可以设置一个间隔,只提取部分帧。例如,每隔10帧提取一帧。
if frame_count %10==0:
    # 保存图片
  1. 按时间间隔提取图片:可以设置一个时间间隔,只提取特定时间点的帧。例如,每隔5秒提取一帧。
if frame_count %(5* fps) ==0:
    # 保存图片
  1. 按关键帧提取图片:可以使用OpenCV的cv2.VideoCapture.get()函数检查当前帧是否为关键帧,只提取关键帧。
if cap.get(cv2.CAP_PROP_KEYFRAME) ==1:
    # 保存图片
  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库从视频中提取图片。我们分步骤讲解了代码,并讨论了如何优化提取过程。通过调整参数和条件,可以根据实际需求提取所需的图片。

相关推荐

看电影看电视剧哪个软件免费

第一款:闪电超清直播闪电超清直播节目内容涵盖各地卫视、少儿等众多频道,换台速度快,播放流畅稳定不卡顿,为广大用户提供完美电视直播体验!第二款:追光者超级Live清爽美化版这款软件涵盖的内容资源就更多...

无需登录的手机游戏(无需登录的手机游戏单机射击)

您指的是单机游戏,这类游戏很多,给您推荐几款供您参考。有植物大战僵尸,愤怒的小鸟,小鳄鱼爱洗澡,魔法跳跳球,连连看,消消乐,各种单机棋牌类游戏。城市街道赛车,三国志,大富翁,各种家用机和街机模拟器,神...

如何下载cad制图软件(如何下载cad制图软件免费)

1、在搜索引擎中输入cad安装包并点击搜索,选择一款安装包进行下载。2、将下载的cad安装包解压出来,右键点击解压文件,在解压出来的文件里面找到setup安装程序,双击开始安装。3、点击开始安装,勾选...

九游手游平台app官网下载(九游手机游戏平台)

九游手游的模拟器的话可以在九游的官方网站上面下载也可以在浏览器或者是英文法商店里的地址下载结合或者是在让朋友推荐让朋友把这个给推荐过来然后咱们就可以下载即可了对或者是上网上查找一下然...

天正cad下载安装(天正建筑cad下载安装)

很简单,在天正官网上下载最新版的插件,双击运行安装在CAD安装包里,如需要用CAD2010来打开,那插件就安装到CAD2010已装好的安装包里。比如我需要用CAD2016来打开该图纸,CAD2016安...

2008qq旧版本下载安装(qq老版本2014下载安装)

08年QQ3080.8排量二手车车况和手续没有问题大体能够卖六七千左右吧,报废补贴还是建议去开封当地车管所问问吧,个人感觉四五千应该可以拿到。型号很老,是08年的十佳发动机,原型是mini的一款发动机...

通达oa(通达oa功能)

通达OA系统是一款企业办公管理软件,主要用于协同办公、流程管理、文档管理等多种功能。使用该系统需要掌握以下技巧:1.合理规划系统流程,根据企业实际需求进行配置;2.熟练使用系统各种功能,如在线协同、审...

手机银行下载(手机银行下载app下载安装到手机)

1.首先打开手机app,然后在界面搜索你要下载的某个银行app软件,进行搜索,搜索好之后,就会出来了。2.然后再点击旁边的获取按钮进行获取,在获取之后,需要进行相关验证,才能继续操作。3.此时会弹出一...

7723游戏盒子免费安装(7723游戏盒子免费安装苹果)

1.7723盒子的下载方式是多样的。2.首先,可以通过在手机应用商店搜索7723盒子并直接下载安装。其次,也可以在7723盒子官方网站上下载安装包,然后将安装包传输到手机上进行安装。此外,还可以通...

连连看经典版下载(经典连连看老版本)

如何在电脑上下载游戏连连看电脑可以到应用商店内查找下载。想要在电脑下载连连看游戏软件,首先需要先下载一个应用商店电脑软件。下载应用商店电脑软件后,点击搜索宠物连连看。找到该游戏软件后点击确认并选择电脑...

凯立德地图(凯立德地图免费更新吗)

不是正版的,拿激活码与特征码到凯立德官网上验证下就知道了。全是免费的网上有下载,向他们花钱就有点冤了。凯立德地图可能没有标注乡下小路的原因有几个可能性。首先,乡下小路可能相对较少使用,而凯立德地图主...

瑞星杀毒(瑞星杀毒公司现状)

很好瑞星公司一直发展得很好,其推出的各式品牌深受好评。其杀毒软件占用系统资源少,病毒库更新快,是一款不错的国产杀毒软件。自从瑞星很久之前被爆出自己造病毒给自己杀之后,名声一落千丈,再加上360,金山等...

看所有电视免费的网站(看电视剧免费的的网站大全)

免vip看电视追剧的网站:1.“电影天堂”网站。这个网站所有的电影、电视剧、美剧,韩剧,动漫、综艺等影视资源都可以在线观看,并且支持绝大多数资源的高清下载。2.“电影港”。这个网站同样是免费观看,且支...

种子搜索神器的最新版(种子搜索器新版下载)

1在目前市场上,有很多种子搜索器可以选择,但有些不够稳定,有些又存在某些安全隐患,因此需要谨慎选择。2推荐使用热门的种子搜索器,例如磁力猫、BT天堂等,它们拥有庞大的用户群体和资源库,相对比较稳定...

txt免费全本阅读器旧版本(全本免费txt小说app旧版)

是的,有许多可以自动翻页的txt小说阅读器,以下是一些常用的阅读器:1.CoolReader:一个免费、开源的阅读器,支持多种格式,包括txt、fb2、epub等,支持自定义字体、字号、背景颜色等...

取消回复欢迎 发表评论: