OpenCV:使用python-cv2实现视频的分解与合成

OpenCV:使用python-cv2实现视频的分解与合成

编码文章call10242025-01-08 14:36:4024A+A-

1.视频分解图片

我们使用cv2.VideoCapture来读取视频

import cv2
cap = cv2.VideoCapture('1.mp4')
isOpened = cap.isOpened   # 判断视频是否可读
print(isOpened)
fps = cap.get(cv2.CAP_PROP_FPS)  # 获取图像的帧,即该视频每秒有多少张图片
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) # 获取图像的宽度和高度
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
print(fps, width, height)
i = 0
while(isOpened):
    if i == 10:
        break
        
    # 读取每一帧,falg表示是否读取成功,frame为图片的内容
    (flag, frame) = cap.read()   
    filename = 'img' + str(i) + '.jpg' # 文件的名字
    if flag:
        cv2.imwrite(filename, frame, [cv2.IMWRITE_JPEG_QUALITY,100]) # 保存图片
    i += 1
12345678910111213141516171819

2.图片合成视频

我们使用cv2.VideoWrite方法来创建一个video写入器

cv2.VideoWriter_fourcc创建视频编解码器

要创建mp4类型的视频文件,视频编解码器为cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')

import cv2
img = cv2.imread('img0.jpg')
width = img.shape[0]
height = img.shape[1]
size = (height, width)
print(size)

videoname = "2.mp4"   # 要创建的视频文件名称 
fourcc = cv2.VideoWriter_fourcc('M', 'J', 'P', 'G') # 编码器 
fps = 5 # 帧率

# 1.要创建的视频文件名称 2.编码器 3.帧率 4.size
videoWrite = cv2.VideoWriter(videoname,fourcc, fps, size)
for i in range(10):
    filename = 'img' + str(i) + '.jpg'
    img = cv2.imread(filename)
    videoWrite.write(img) # 写入
1234567891011121314151617
720 1280
点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4