Python OpenCV实现视频与图片互转实战

咖啡半糖
咖啡半糖
发布时间:2026-10-13| 6人浏览过
原创

本文详细介绍如何利用Python和OpenCV库实现视频与图片的双向转换。涵盖将视频逐帧提取为静态图像的方法,以及指定帧率(如30fps)将序列图片合成为视频文件的完整代码示例与参数配置说明,适用于数据集处理与基础视频编辑场景。

Python OpenCV视频与图片互转教程

近期因实验需要频繁进行数据集格式转换,特此整理相关操作流程以备查阅。

视频转图片实现步骤

一、视频转图片处理

该过程的核心逻辑是将视频文件解析并提取为连续的静态图像帧。


import cv2
vc=cv2.VideoCapture("/home/hqd/PycharmProjects/1/1/19.MOV")
c=1
if vc.isOpened():
  rval,frame=vc.read()
else:
  rval=False
while rval:
  rval,frame=vc.read()
  cv2.imwrite('/home/hqd/PycharmProjects/1/1/19/'+str(c)+'.jpg',frame)
  c=c+1
  cv2.waitKey(1)
vc.release()

图片合成视频实现步骤

二、图片转视频合成

此环节旨在将一系列静态图片重新组合为视频文件,本例中设定的输出帧率为每秒30帧。


import cv2import os
fps = 30
fourcc = cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')
video_writer = cv2.VideoWriter(filename='./result.avi', fourcc=fourcc, fps=fps, frameSize=(1920, 1080))
for i in range(0,6000):
  p = i
  if os.path.exists('/home/hqd/PycharmProjects/1/qqqq/'+str(p)+'.jpg'):  #判断图片是否存在
    img = cv2.imread(filename='/home/hqd/PycharmProjects/1/qqqq/'+str(p)+'.jpg')
    cv2.waitKey(100)
    video_writer.write(img)
    print(str(p) + '.jpg' + ' done!')
video_writer.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 算法库。