惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
U
Unit 42
人人都是产品经理
人人都是产品经理
罗磊的独立博客
Recent Announcements
Recent Announcements
云风的 BLOG
云风的 BLOG
aimingoo的专栏
aimingoo的专栏
T
Tailwind CSS Blog
GbyAI
GbyAI
Blog — PlanetScale
Blog — PlanetScale
I
InfoQ
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
B
Blog RSS Feed
WordPress大学
WordPress大学
腾讯CDC
H
Help Net Security
博客园 - Franky
博客园 - 【当耐特】
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
B
Blog
Vercel News
Vercel News
博客园 - 司徒正美

博客园 - 白桦的天空

激活windows最快的方法 python+uwsgi警告 树莓派设置为竖屏显示 树莓派无桌面系统(RaspberryPI Lite)启动自动打开Chromium-Browser的具体方法 antui-alipay风格的移动网页设计 移动网页字体大小随着页面自动切换 自定义树莓派开机启动画面-plymouth版本 树莓派py文件自动运行 树莓派VLC获取实时视频流 一个标准的pygame例子 pygame镜像输出 python中使用pylet实现异屏输出 选择金额充值的选中css样式 Debian 无桌面+QT运行环境 手机外部浏览器跳转支付宝内置浏览器例子 前端动态获取后台处理进度显示在进度条上 Ventoy 多合一启动盘制作工具神器 - 将多个系统 Win/PE/Linux 镜像装在1个U盘里 pygame和pywebview配合做界面 通过websocket接口获取数据实时更新数据表 python监听麦克风并通过websocket输出音频数据峰值目的是绘制音频曲线
如何使用 opencv-python 提取视频每一帧的图片?
白桦的天空 · 2023-08-04 · via 博客园 - 白桦的天空

参考:https://blog.csdn.net/u013066730/article/details/126356627

获取视频(创建 VideoCapture 对象)

使用 cv2.VideoCapture 类

Args:

  • filename – 文件路径;
  • device – 视频设备id ,若只有一个摄像头可以填 0,表示打开默认摄像头;
    vc = cv2.VideoCapture(filename)
    

    检验 VideoCapture 对象是否创境成功

    使用 VideoCapture 对象的 isOpened 方法

    # determine whether to open normally
    if vc.isOpened():
        ret, frame = vc.read()
    else:
        ret = False
    

    若成功,返回 True。

    按帧读取视频

    使用 VideoCapture 对象的 read 方法

    使用 VideoCapture 对象的 read 方法按帧读取视频,ret, frame 是 read 方法的两个返回值 ,其中 ret 是布尔值,如果能正确读取帧,则返回 True;如果文件读取到结尾,它的返回值就为 False。frame 就是每一帧的图像,是一个三维矩阵。

    # loop read video frame
    while ret:
        ret, frame = vc.read()
    

    保存图片

    使用 cv2.imwrite() 函数

    第一个参数是文件名,第二个参数是图片资源。

  • cv2.imwrite(image_path, image)