采集到一些视频数据,需要将里面的视频按照指定帧截图。

参考了很多资料后,实现了自己的功能:

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 实现视频按帧截取图片相关推荐

  1. python截取视频图像_python工具-将视频按帧截取图片(附代码)

    描述:将一个视频流按帧数截取大量的图片 用途:ai的数据集制作,得到大量的图片,之后将其打标签 更改的地方 1.default--间隔的帧数   2.input/output--输入视频的路径.存放截 ...

  2. ffmpeg视频按帧截取图片和ffmpeg将图片合成mp4视频

    ffmpeg -i C:\Users\Desktop\qianbansheng.mp4 -y -f image2 -s 960x540 C:\Users\Desktop\ps\%05d.jpg ffm ...

  3. 视频按帧截取 python程序

    视频按帧截取 python程序 代码注释很清晰,请自行阅读, 参考部分网络资源,由于较难追溯,不记出处. import cv2 as cv import os# 视频路径 video_path = & ...

  4. 基于 OpenCV + Python 的人脸识别上课签到系统

    目录 前言 安装第三方库 第一步:采集人脸图像 (1)修改姓名学号 (2)运行capture_face.py (3)采集人脸图像 (4)查看采集到的人脸图像 第二步:训练模型 第三步:识别签到 (1) ...

  5. 【python实现视频解帧并保存到文件夹】

    [python实现视频解帧并保存文件夹] 1.功能说明 2.代码实现 3.函数方法解析 ① os.getcwd() ② cv2.VideoCapture().get方法获取视频的相关参数 ③ cv2. ...

  6. 基于OpenCV的电影视频人像景别分类算法(源码&教程)

    1.研究背景 近年来,随着多媒体技术的高速发展,视频数据也呈现出爆炸性的增长.基于内容的视频检索已成为当前的迫切需求.特别在电影视频领域,单纯的播放已经无法满足用户日益增长的需要.如何准确快速地按照用 ...

  7. OpenCV python 播放视频文件(.avi)

    OpenCV python 播放视频文件(.avi) 同文件夹存放文件[test.avi] import cv2def main():# 1.初始化读取视频对象cap = cv2.VideoCaptu ...

  8. python将视频按帧读取并转换成图片

    python将视频按帧读取并转换成图片 代码如下 from glob import glob import cv2 import tqdm import os video_path = glob(r' ...

  9. Python从视频抽取帧保存为图片

    Python从视频抽取帧保存为图片 flyfish 版本3.6以上 import cv2 from tqdm import tqdm #视频文件所在的路径 video_path = "/me ...

最新文章

  1. Python教学课程分享9-面向对象编程
  2. delete后加 limit是个好习惯么 !
  3. GridView直接以excel格式导出到客户端
  4. Python实践周 A卷 试题(不印刷)
  5. 山东大学软件学院概率论与数理统计(考试)——期末考试回忆版
  6. APK大小查看、定义、反编译、如何安装解压
  7. 基于 Flink 的 PB 级数据即席查询实践
  8. 集成建行聚合支付踩过的坑,有些槽不吐不快
  9. 蓝桥杯—大胖子走迷宫—广搜
  10. 20行Python代码,轻松提取PPT文字到Word!
  11. 如何编译 cm12 (for 一加手机)
  12. vmware虚拟服务器数据备份,备份VMware虚拟机的方法!
  13. 线性代数 --- Gauss消元的部分主元法和完全主元法(补充)
  14. 微信小程序之设置所有页面背景颜色
  15. 【Python爬虫网站数据实战】Python爬虫 统计淘宝商品数据+数据可视化
  16. Apple Logic Pro X 10.7 For MacOS 苹果音乐制作宿主软件
  17. 关于计算机天赋测试,这是一道你绝没测过的测试题,能测出你的天赋究竟是什么...
  18. 剖析javascript中构造函数
  19. 商城项目-SPU和SKU数据结构
  20. 程序员的自我修炼(一):打通任督二脉

热门文章

  1. 性能监控之 JMX 监控 Docker 容器中的 Java 应用
  2. Windows 10 VHD安装
  3. 求两个数的m和n的最大公约数和最小公倍数。
  4. 初中学业水平计算机考不及格,初中学业水平考试不及格能毕业吗?初中学业水平考试重不重要?...
  5. java音乐播放器文库_微机原理课程设计报告——音乐播放器.doc
  6. 使用key和pem文件生成 pfx 或 jks 文件
  7. Eclipse的web项目放到服务器上跑
  8. mysql 次方根_MySQL Sqrt()函数
  9. 报告称我国成最大移民输出国 将形成投资产业链(关注)
  10. 移动图片应用的社交化国际化探讨