基于Opencv-python 实现视频按帧截取图片
采集到一些视频数据,需要将里面的视频按照指定帧截图。
参考了很多资料后,实现了自己的功能:
1.安装所需要的库:
pip3 install -i https://mirrors.aliyun.com/pypi/simple +库名
pip3 install -i https://mirrors.aliyun.com/pypi/simple opencv-python
2.编写代码,实现需求:
default--间隔的帧数 2.input/output--输入视频的路径、存放截取图片的路径 (将路径放入后面的‘ '中即可)前面加r可表示绝对路径
"""
@File : deal_videos.py
@Author: LZW
@Date : 2021/01/15
@Desc : 截取视频中的图像
"""# 引入所需要的库
import cv2
import argparse
import osdef parse_args(num):"""Parse input arguments"""n = ''n = n + str(num)parser = argparse.ArgumentParser(description='Process pic')parser.add_argument('--input', help='video to process', dest='input', default=None, type=str)parser.add_argument('--output', help='pic to store', dest='output', default=None, type=str)# default为间隔多少帧截取一张图片parser.add_argument('--skip_frame', dest='skip_frame', help='skip number of video', default=100, type=int)# input为输入视频的路径 ,output为输出存放图片的路径input = 'F:\西南医院视频(压缩版)\\' + n + '.avi' # 读取的文件目录out = 'F:\output_videos\\' + n # 输出的文件目录args = parser.parse_args(['--input', input, '--output', out])return argsdef process_video(i_video, o_video, num):cap = cv2.VideoCapture(i_video)num_frame = cap.get(cv2.CAP_PROP_FRAME_COUNT)expand_name = '.jpg'if not cap.isOpened():print("Please check the path.")cnt = 0count = 0while 1:ret, frame = cap.read()cnt += 1# how many frame to cutif cnt % num == 0:count += 1cv2.imwrite(os.path.join(o_video, str(count) + expand_name), frame)if not ret:breakif __name__ == '__main__':start = 71end = 107for i in range(start, end):args = parse_args(i)if not os.path.exists(args.output):os.makedirs(args.output)print('Called with args:')print(args)process_video(args.input, args.output, args.skip_frame)
运行结果:
原文作者地址我忘记了,若原文作者看到可以告知我下。
原代码:
"""
@Description 将视频按照指定帧切分成图片
@Author LZW
@CreateTime 2021/02/09 17:14
@UpdateTime 2021/02/09 17:14
@Version 1.0.0
"""
# 引入所需要的库
import cv2
import argparse
import osdef parse_args():"""Parse input arguments"""parser = argparse.ArgumentParser(description='Process pic')parser.add_argument('--input', help='video to process', dest='input', default=None, type=str)parser.add_argument('--output', help='pic to store', dest='output', default=None, type=str)# default为间隔多少帧截取一张图片parser.add_argument('--skip_frame', dest='skip_frame', help='skip number of video', default=100, type=int)# input为输入视频的路径 ,output为输出存放图片的路径args = parser.parse_args(['--input', r'F:\西南医院视频(压缩版)\80.mp4', '--output', r'F:\output_videos\80'])return argsdef process_video(i_video, o_video, num):cap = cv2.VideoCapture(i_video)num_frame = cap.get(cv2.CAP_PROP_FRAME_COUNT)expand_name = '.jpg'if not cap.isOpened():print("Please check the path.")cnt = 0count = 0while 1:ret, frame = cap.read()cnt += 1# how# many# frame# to# cutif cnt % num == 0:count += 1cv2.imwrite(os.path.join(o_video, str(count) + expand_name), frame)if not ret:breakif __name__ == '__main__':args = parse_args()if not os.path.exists(args.output):os.makedirs(args.output)print('Called with args:')print(args)process_video(args.input, args.output, args.skip_frame)
使用要修改的地方:
default--间隔的帧数 2.input/output--输入视频的路径、存放截取图片的路径 (将路径放入后面的‘ '中即可)前面加r可表示绝对路径
基于Opencv-python 实现视频按帧截取图片相关推荐
- python截取视频图像_python工具-将视频按帧截取图片(附代码)
描述:将一个视频流按帧数截取大量的图片 用途:ai的数据集制作,得到大量的图片,之后将其打标签 更改的地方 1.default--间隔的帧数 2.input/output--输入视频的路径.存放截 ...
- ffmpeg视频按帧截取图片和ffmpeg将图片合成mp4视频
ffmpeg -i C:\Users\Desktop\qianbansheng.mp4 -y -f image2 -s 960x540 C:\Users\Desktop\ps\%05d.jpg ffm ...
- 视频按帧截取 python程序
视频按帧截取 python程序 代码注释很清晰,请自行阅读, 参考部分网络资源,由于较难追溯,不记出处. import cv2 as cv import os# 视频路径 video_path = & ...
- 基于 OpenCV + Python 的人脸识别上课签到系统
目录 前言 安装第三方库 第一步:采集人脸图像 (1)修改姓名学号 (2)运行capture_face.py (3)采集人脸图像 (4)查看采集到的人脸图像 第二步:训练模型 第三步:识别签到 (1) ...
- 【python实现视频解帧并保存到文件夹】
[python实现视频解帧并保存文件夹] 1.功能说明 2.代码实现 3.函数方法解析 ① os.getcwd() ② cv2.VideoCapture().get方法获取视频的相关参数 ③ cv2. ...
- 基于OpenCV的电影视频人像景别分类算法(源码&教程)
1.研究背景 近年来,随着多媒体技术的高速发展,视频数据也呈现出爆炸性的增长.基于内容的视频检索已成为当前的迫切需求.特别在电影视频领域,单纯的播放已经无法满足用户日益增长的需要.如何准确快速地按照用 ...
- OpenCV python 播放视频文件(.avi)
OpenCV python 播放视频文件(.avi) 同文件夹存放文件[test.avi] import cv2def main():# 1.初始化读取视频对象cap = cv2.VideoCaptu ...
- python将视频按帧读取并转换成图片
python将视频按帧读取并转换成图片 代码如下 from glob import glob import cv2 import tqdm import os video_path = glob(r' ...
- Python从视频抽取帧保存为图片
Python从视频抽取帧保存为图片 flyfish 版本3.6以上 import cv2 from tqdm import tqdm #视频文件所在的路径 video_path = "/me ...
最新文章
- Python教学课程分享9-面向对象编程
- delete后加 limit是个好习惯么 !
- GridView直接以excel格式导出到客户端
- Python实践周 A卷 试题(不印刷)
- 山东大学软件学院概率论与数理统计(考试)——期末考试回忆版
- APK大小查看、定义、反编译、如何安装解压
- 基于 Flink 的 PB 级数据即席查询实践
- 集成建行聚合支付踩过的坑,有些槽不吐不快
- 蓝桥杯—大胖子走迷宫—广搜
- 20行Python代码,轻松提取PPT文字到Word!
- 如何编译 cm12 (for 一加手机)
- vmware虚拟服务器数据备份,备份VMware虚拟机的方法!
- 线性代数 --- Gauss消元的部分主元法和完全主元法(补充)
- 微信小程序之设置所有页面背景颜色
- 【Python爬虫网站数据实战】Python爬虫 统计淘宝商品数据+数据可视化
- Apple Logic Pro X 10.7 For MacOS 苹果音乐制作宿主软件
- 关于计算机天赋测试,这是一道你绝没测过的测试题,能测出你的天赋究竟是什么...
- 剖析javascript中构造函数
- 商城项目-SPU和SKU数据结构
- 程序员的自我修炼(一):打通任督二脉
热门文章
- 性能监控之 JMX 监控 Docker 容器中的 Java 应用
- Windows 10 VHD安装
- 求两个数的m和n的最大公约数和最小公倍数。
- 初中学业水平计算机考不及格,初中学业水平考试不及格能毕业吗?初中学业水平考试重不重要?...
- java音乐播放器文库_微机原理课程设计报告——音乐播放器.doc
- 使用key和pem文件生成 pfx 或 jks 文件
- Eclipse的web项目放到服务器上跑
- mysql 次方根_MySQL Sqrt()函数
- 报告称我国成最大移民输出国 将形成投资产业链(关注)
- 移动图片应用的社交化国际化探讨