您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python提取视频帧图片实例代码

51自学网 2022-02-21 10:37:07
  python
这篇教程Python提取视频帧图片实例代码写得很实用,希望能帮到您。

为了从视频中提取每一帧图片,编写Python脚本实现该功能

video_path为指定的视频路径

interval为指定分割视频是是否跳帧,默认不跳帧,即全部分割

width, height 为指定对分割帧图片调整大小,默认不调整

该脚本自动对帧图片编号,设置为7位编码,最多可分割9999999帧图片,即92小时的30FPS视频

# !/usr/bin/env python# -*- coding: utf-8 -*-# ============================================================# @Date    : 2021/12/08 14:40:31# @Author  : LiShan# @Email   : lishan@st.xatu.edu.com# @File    : extract.py# @IDE     : PyCharm# @Func    : Extract video image# ============================================================import os.pathimport timeimport cv2 video_path = "./assets/intersection.mp4"idx1 = video_path.rfind('/')idx2 = video_path.rfind('.')save_path = "./assets/" + video_path[idx1+1:idx2]if os.path.exists(save_path):    passelse:    os.mkdir(save_path) cap = cv2.VideoCapture(video_path)fps = int(cap.get(cv2.CAP_PROP_FPS))print('FPS:{:.2f}'.format(fps))rate = cap.get(5)frame_num = cap.get(7)duration = frame_num/rateprint('video total time:{:.2f}s'.format(duration)) # width, height = 1920, 1080cnt = 0num = 0# interval = int(fps) * 4interval = 1process_num = frame_num // intervalprint('process frame:{:.0f}'.format(process_num)) t0 = time.time()while cap.isOpened():    ret, frame = cap.read()    if ret:        cnt += 1        if cnt % interval == 0:            num += 1            # frame = cv.resize(frame, (width, height))            cv2.imwrite(save_path + "/%07d.jpg" % num, frame)            remain_frame = process_num - num            t1 = time.time() - t0            t0 = time.time()            print("Processing %07d.jpg, remain frame: %d, remain time: %.2fs" % (num, remain_frame, remain_frame * t1))    else:        break    if cv2.waitKey(1) & 0xff == 27:        break cap.release()cv2.destroyAllWindows()print("done")

到此这篇关于Python提取视频帧图片实例代码的文章就介绍到这了,更多相关Python提取视频帧图片内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


通过Python实现电脑定时关机的两种方法
如何在Pycharm中制作自己的爬虫代码模板
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。