python如何实现从视频中提取每秒图片
2019-07-23 11:58
1181 查看
我是在做行人检测中需要将一段视频变为图片数据集,然后想将视频每秒钟的图片提取出来。
- 语言: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()
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
相关文章推荐
- python爬虫技术实现图片提取
- Python实现使用卷积提取图片轮廓功能示例
- 京东猪脸识别比赛数据预处理:用Python将视频每一帧提取存储为图片
- python如何实现内容写在图片上
- 如何使用ffmpeg从视频中提取图片
- 如何利用python将视频选定区域每一帧保存为图片
- 用python文件操作实现复制图片、视频
- 如何使用ffmpeg从视频中提取图片
- python实现超简单的视频对象提取功能
- 安卓开发-进度条上方显示各个进度的视频片段,如何实现 安卓开发问题,请问这种进度条上弹框显示各个时间段视频片段是怎么实现的?![图片](http://img.ask.csdn.net/upload/2
- python如何实现视频转代码视频
- python tools实现视频的每一帧提取并保存
- 【Python】dlib实现视频中人脸68特征点提取
- python用tcp实现局域网内文件传输(文本,图片,视频)
- Python + Baidu API 实现图片中文字的提取
- python实现爬取网站图片,视频动画到指定路径(附代码)
- python用tcp实现局域网内文件传输(文本,图片,视频)
- 使用Python opencv实现视频与图片的相互转换
- Python爬虫技术干货,教你如何实现抓取京东店铺信息及下载图片
- 如何提取文献图表中的散点数据,并python的matplotlib包重新绘制图片