Python cv2视频帧合成

Python cv2视频帧合成

需要调用cv2这个库的函数,直接上代码:

import cv2
import os

size = (1280,1024)#这个是图片的尺寸,一定要和要用的图片size一致
#完成写入对象的创建,第一个参数是合成之后的视频的存储路径,第二个参数为四字符代码,第三个参数为帧数,第四个为图像尺寸
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
videowrite = cv2.VideoWriter(r'/data/facias/mmrotate-main/mmdeploy/s2anet2onnx2/vedio/ir.mp4',fourcc,10,size)

img_list = os.listdir("data/test_split/ir_images")#读取所有的文件名,返回列表
for filename in img_list:#这个循环是为了读取所有要用的图片文件
    img = cv2.imread("data/test_split/ir_images/" + filename)#读取图片为array格式,尺寸(1024,1280,3),注意是和上面的size反着来的
    if img is None:
        print(filename + " is error!")
        continue
    videowrite.write(img)#将图片写入之前构建好的对象
videowrite.release()
print('end!')
  • size要特别注意,这里的size顺序应该是(Width,Height),错了的话生成的视频文件应该是空的;
  • fourcc意为四字符代码(Four-Character Codes),该编码由四个字符组成,以下为常用参数:
    • cv2.VideoWriter_fourcc(*‘mp4v’): 之前是cv2.VideoWriter_fourcc(‘M’, ‘P’, ‘4’, ‘V’),高版本必须要改写成小写才行,生成.mp4文件;
    • cv2.VideoWriter_fourcc(‘X’,‘2’,‘6’,‘4’): 生成.mp4文件;
    • cv2.VideoWriter_fourcc(‘I’, ‘4’, ‘2’, ‘0’): YUV编码类型,生成.avi ;
    • cv2.VideoWriter_fourcc(‘P’, ‘I’, ‘M’, ‘I’): MPEG-1编码类型,生成.avi;
    • cv2.VideoWriter_fourcc(‘X’, ‘V’, ‘I’, ‘D’):MPEG-4编码类型,生成.avi;
    • cv2.VideoWriter_fourcc(‘T’, ‘H’, ‘E’, ‘O’): Ogg Vorbis,生成.ogv;
    • cv2.VideoWriter_fourcc(‘F’, ‘L’, ‘V’, ‘1’): Flash视频,生成.flv;

猜你喜欢

转载自blog.csdn.net/weixin_45453121/article/details/130721540