Проблема сохранения видео в Python с использованием OpenCV - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь сохранить обработанное видео в формате MPEG4.Оригинальное видео - это файл.Он загружается нормально, и я также могу сохранить его как MPEG4.Итак, я предполагаю, что параметры cv2.VideoWriter в порядке.Однако, когда я пытаюсь сделать вычитание фона с последующим размыванием и расширением, я не могу сохранить измененное видео, даже если оно будет правильно отображаться на экране.Код показан ниже:

import cv2

#declare I/O
video_capture = cv2.VideoCapture('C:\\Users\\good.avi')
 out = cv2.VideoWriter('output.mp4',cv2.VideoWriter_fourcc(*'MP4V'), 30.0, (800,600))

#background subtraction configruation
subtractor = cv2.createBackgroundSubtractorMOG2(history=10, varThreshold=25)

while True:
    # Capture frame-by-frame
    ret, frame = video_capture.read()

    if ret != True:
        break

    #video processing
    mask = subtractor.apply(frame)
    img_erosion = cv2.erode(mask, None, iterations=3)
    img_dilate = cv2.dilate(img_erosion, None, iterations=3)

    #show Videos
    cv2.imshow("Original", frame)
    cv2.imshow("Subtractor", mask)
    cv2.imshow("erosion", img_dilate)

    #write video DOES NOT WORK.  It can saves "frame" but not img_dilate
    out.write(img_dilate)

    if cv2.waitKey(300) & 0xFF == ord('q'):
        break 
    #When everything is done, release the capture
    video_capture.release()
    cv2.destroyAllWindows()
    out.release
...