【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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章