Python+Opencv实现图片与视频互转的完整示例

今天早睡
今天早睡
发布时间:2026-10-14 | 3人浏览过
原创

本文详细介绍如何使用Python结合OpenCV库实现视频与图片的相互转换。内容涵盖环境安装、视频逐帧提取保存为JPG图片,以及将指定文件夹内的图片序列合成为AVI视频文件。代码包含参数设置、路径处理及质量控制,适用于基础图像处理需求。

首先,需要安装OpenCV相关的Python包。


pip install opvencv-python

接下来是具体的实现代码部分。

关于将视频文件转换为图片序列的操作流程如下:


import cv2
cap=cv2.VideoCapture('E:/video/video-02.mp4') # 获取一个视频打开cap
isOpened=cap.isOpened # 判断是否打开
print(isOpened)
fps=cap.get(cv2.CAP_PROP_FPS)
print(fps)
# 获取宽度
width=int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
# 获取高度
height=int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
i=0
while(isOpened):
  # 保存前十帧
  if i==10:
    break
  else:
    i+=1
  (flag,frame)=cap.read() # 读取每一帧,一张图像flag 表明是否读取成果 frame内容
  fileName='E:/video/image'+str(i)+'.jpg'
  print(fileName)
  # flag表示是否成功读图
  if flag==True:
    # 控制质量
    cv2.imwrite(fileName,frame,[cv2.IMWRITE_JPEG_QUALITY,100])
print('end!')

反之,将一系列图片保存并合成为视频文件的逻辑如下:


import os
import cv2
import numpy as np

path = 'E:/video/img'
filelist = os.listdir(path)
#fourcc = cv2.cv.CV_FOURCC('M','J','P','G') #opencv版本是2
fourcc = cv2.VideoWriter_fourcc(*'XVID') #opencv版本是3

fps = 5 # 视频每秒24帧
size = (1920, 1080) # 需要转为视频的图片的尺寸
# 可以使用cv2.resize()进行修改

video = cv2.VideoWriter('E:/video/2.avi', fourcc, fps, size)
# 视频保存在当前目录下

for item in filelist:
  if item.endswith('.jpg'):
    # 找到路径中所有后缀名为.png的文件,可以更换为.jpg或其它
    item = path + item
    img = cv2.imread(item)
    video.write(img)
video.release()
cv2.destroyAllWindows()

以上即为利用Python和OpenCV实现图片与视频互相转换的完整示例。如需了解更多关于Python处理图片和视频的资料,建议查阅本站其他相关技术文章。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表