Python使用OpenCV实现视频流读取与逐帧截图保存

许南星
许南星
发布时间:2026-10-13| 1人浏览过
原创

本文介绍如何使用Python的OpenCV库实现视频文件的读取与图片转换。通过VideoCapture接口加载视频流,利用while循环结合read()方法逐帧获取画面,并演示了实时显示窗口与将每一帧保存为独立JPEG图片文件的具体代码实现,适用于视频分析前的预处理场景。

视频流的实时读取与显示

首先进行视频读取操作。在Python环境中,通常使用OpenCV库的VideoCapture类来加载视频文件。代码中指定了视频文件的路径,例如'E:\\Video\\20000105_224116.dav'。程序进入一个无限循环,持续调用cap.read()方法读取视频帧。该方法返回两个值:ret布尔值和frame图像数据。如果ret为真,表示成功读取到一帧,程序通过cv2.imshow('input',frame)在窗口中实时显示当前画面。若读取失败(ret为假),则跳出循环。同时,程序监听键盘事件,当检测到ESC键(键值27)被按下时,也会终止循环。最后,调用cap.release()释放视频捕获对象,并使用cv2.destroyAllWindows()关闭所有OpenCV创建的窗口。

视频读取核心代码实现


import cv2

cap = cv2.VideoCapture('E:\\Video\\20000105_224116.dav') #地址

while(True):

  ret,frame = cap.read()

  if(ret):

    # gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)

    cv2.imshow('input',frame)

  else:

    break

  if cv2.waitKey(1)==27:

    break

cap.release()

cv2.destroyAllWindows()

视频逐帧转换为图片文件

接下来实现将视频转化为图片的功能。核心逻辑同样是利用VideoCapture打开视频文件,例如'E:\\Video\\binggan.dav'。程序初始化一个计数器c用于记录帧序号,并通过vc.isOpened()检查视频是否成功打开。在while循环中,每次迭代先增加计数器c,然后调用vc.read()获取当前帧。如果读取成功,程序使用cv2.imwrite()函数将帧保存为图片文件。保存路径和文件名格式设定为'E:\\Video\\binggan\\'加上前缀'camera1_binggan',再拼接当前帧序号c,最后加上'.jpg'扩展名。保存成功后打印当前帧序号c以示进度。如果读取失败,则跳出循环。循环结束后,调用vc.release()释放视频资源。

图片保存代码实现


# -*- coding: utf-8 -*-
"""
Created on Mon Nov 5 15:21:15 2018

@author: chenjin10
"""

import cv2
vc = cv2.VideoCapture('E:\\Video\\binggan.dav')
c=0
rval=vc.isOpened()

while rval:
  c = c + 1
  rval, frame = vc.read()
  if rval:
    cv2.imwrite('E:\\Video\\binggan\\'+'camera1_binggan'+str(c) + '.jpg', frame) #命名方式
    print(c)
  else:
    break
vc.release()

上述内容展示了利用Python和OpenCV进行视频读取及逐帧图片保存的完整流程。通过这两个示例,可以掌握如何从视频流中提取画面并保存为静态图像,这对于视频数据分析、模型训练数据准备等场景具有实用价值。希望这些代码示例能为您提供参考,欢迎继续支持相关技术分享。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。