После вычитания BG (с использованием opencv-python) и сохранения, выходное видео составляет 2 ГБ. Как гарантировать, что это не взорвется в размере? - PullRequest
0 голосов
/ 17 мая 2018

# Ниже приведен фрагмент кода для чтения видеофайла с именем v1.mp4 (размер около 14 МБ), выполнения вычитания фона, поворота кадра и его сохранения.

import cv2
import argparse
import datetime
import imutils
import time
import numpy as np
cap = cv2.VideoCapture("C:\\Users\\212458792\\Music\\Downloads\\BasketVideos\\v1.mp4") #Open video file

fgbg = cv2.createBackgroundSubtractorMOG2(detectShadows = True) #Create the background substractor

size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))

# now creating video writer object  
bgsubvideo = cv2.VideoWriter('C:\\Users\\212458792\\Music\\Downloads\\BasketVideos\\bgsubvideo.avi', -1, 20.0,size)
#using any other codec like divx or xvid or mpeg for fourcc did create and video #file and write it, but i couldn't play the file. hence using -1

выполнить фоновое вычитание кадра за кадром

while True:

    ret, frame = cap.read()#read a frame

    if ret==True:

        fgmask = fgbg.apply(frame) #Use the substractor
        cv.Flip(fgmask, flipMode=-1)
        bgsubvideo.write(fgmask)

    else:
        break

cap.release() #release video file
cv2.destroyAllWindows() #close all openCV windows
bgsubvideo.release()
...