OpenCV将JPG合成avi视频流

        将jpg文件合成一个视频文件,有这个需求是因为最近跑目标检测的网络模型,测试集在经过模型预测后生成带标注框的独立的文件,不太好直观展示。现在需要将预测结果做成一个视频demo,这一点通过OpenCV可以轻易完成。

【数据准备】

        这里准备了2702张jpg图片(0001.jpg - 2702.jpg),存于当前extract_folder目录以便后面合成视频所用。

      

【源代码】

# coding:utf-8
import numpy as np
import cv2
import time

fps = 20.0 #帧率
fourcc = cv2.VideoWriter_fourcc(*'XVID') #视频编码器
size = (640,480) #视频分辨率,与原始图片保持一致,或者将图片皆resize到訪分辨率
out = cv2.VideoWriter('output.avi', fourcc, fps, size) #定义输出文件及其它参数

for i in range(1,2703):
    n = str(i).zfill(4)
    image_file="./extract_folder/{0}.jpg".format(n)
    frame = cv2.imread(image_file)
    out.write(frame)

    if cv2.waitKey(25) & 0xFF == ord('q'):
        break


out.release()
cv2.destroyAllWindows()

【结果演示】

【附】

#FourCC全称是Four-Character Codes,即四字符代码,它是一个32位的标示符,
#是一种独立标示视频数据流格式的四字符代码.cv2.VideoWriter_fourcc()函数
#的作用根据输入的四字符代码返回对应的视频编码器.
#XVID是一个开放源代码的MPEG-4视频编解码器
CV_FOURCC---编码格式

CV_FOURCC('P', 'I', 'M', '1') = MPEG-1 codec
CV_FOURCC('M', 'J', 'P', 'G') = motion-jpeg codec
CV_FOURCC('M', 'P', '4', '2') = MPEG-4.2 codec
CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3 codec
CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec
CV_FOURCC('U', '2', '6', '3') = H263 codec
CV_FOURCC('I', '2', '6', '3') = H263I codec
CV_FOURCC('F', 'L', 'V', '1') = FLV1 codec

猜你喜欢

转载自blog.csdn.net/ChuiGeDaQiQiu/article/details/82055928