python如何实现从视频中提取每秒图片

作者:宁采晨 时间:2023-10-15 11:36:25 

我是在做行人检测中需要将一段视频变为图片数据集,然后想将视频每秒钟的图片提取出来。

  • 语言:python

  • 所需要的库:cv2,numpy (自行安装)

opencv中提供了读取视频每帧图片的函数,下面的代码可以将视频的每帧图片提取出来。注:我的视频名字叫 2.mp4  ,提取图片保存目录 需要自己建一个名字叫 output 的文件夹。


# 导入所需要的库
import cv2
import numpy as np

# 定义保存图片函数
# image:要保存的图片名字
# addr;图片地址与相片名字的前部分
# num: 相片,名字的后缀。int 类型
def save_image(image,addr,num):
address = addr + str(num)+ '.jpg'
cv2.imwrite(address,image)

# 读取视频文件
videoCapture = cv2.VideoCapture("2.mp4")
# 通过摄像头的方式
# videoCapture=cv2.VideoCapture(1)

#读帧
success, frame = videoCapture.read()
i = 0
while success :
i = i + 1
save_image(frame,'./output/image',m)
if success:
 print('save image:',i)
success, frame = videoCapture.read()

现在我想按秒提取,只要我们能知道视频每秒有多少帧,然后在上面的代码基础上每隔那么多帧提取一次就行了,这就需要查看视频的帧率。一般情况下随便用一个播放器打开视频后右键查看其属性就可以看到帧率。现在我的视频帧率为12 ,每隔12帧提取一次就可以得到每秒的图片。代码如下:


# 导入所需要的库
import cv2
import numpy as np

# 定义保存图片函数
# image:要保存的图片名字
# addr;图片地址与相片名字的前部分
# num: 相片,名字的后缀。int 类型
def save_image(image,addr,num):
address = addr + str(num)+ '.jpg'
cv2.imwrite(address,image)

# 读取视频文件
videoCapture = cv2.VideoCapture("2.mp4")
# 通过摄像头的方式
# videoCapture=cv2.VideoCapture(1)

#读帧
success, frame = videoCapture.read()
i = 0
timeF = 12
j=0
while success :
i = i + 1
if (i % timeF == 0):
 j = j + 1
 save_image(frame,'./output/image',j)
 print('save image:',i)
success, frame = videoCapture.read()

来源:https://blog.csdn.net/ningcaichen1997/article/details/86018214

标签:python,视频,提取图片
0
投稿

猜你喜欢

  • 基于javascript实现表格的简单操作

    2024-04-30 08:55:24
  • Python3中的多行输入问题

    2023-02-06 13:11:23
  • 从零学python系列之从文件读取和保存数据

    2021-02-11 01:51:29
  • 浅谈django url请求与数据库连接池的共享问题

    2024-01-26 00:12:40
  • Python实现学生信息管理系统的示例代码

    2022-12-06 22:17:56
  • 利用sys.sysprocesses检查SqlServer的阻塞和死锁

    2011-11-03 17:24:11
  • ubuntu下mysql 8.0.28 安装配置方法图文教程

    2024-01-21 23:40:56
  • Django ModelForm操作及验证方式

    2021-04-22 18:11:44
  • JS载入数据效果!loading

    2009-01-20 18:35:00
  • 深入讲解Python中的迭代器和生成器

    2021-11-29 05:32:56
  • SQL Server中通过reverse取某个最后一次出现的符号后面的内容(字符串反转)

    2012-07-11 15:59:36
  • Python扑克牌21点游戏实例代码

    2021-10-05 02:49:51
  • Oracle 安装和卸载问题收集(集合篇)第1/6页

    2009-07-02 12:20:00
  • Python聊天室带界面实现的示例代码(tkinter,Mysql,Treading,socket)

    2024-01-23 21:46:07
  • 在Python中实现替换字符串中的子串的示例

    2023-01-28 16:23:58
  • 什么样的图标更具有可用性

    2007-10-16 17:47:00
  • Python实现 版本号对比功能的实例代码

    2022-07-22 05:53:59
  • python中dict()的高级用法实现

    2022-06-16 23:24:29
  • 如何用MySQL-Front远程连接MySql?

    2010-12-03 16:02:00
  • MySQL 句柄数占用过多的解决方法

    2024-01-29 12:31:06
  • asp之家 网络编程 m.aspxhome.com