无法读取视频输出

时间:2017-03-21 22:29:27

标签: python-3.x anaconda opencv3.0

我正在使用背景减法的示例。它运行良好,但视频输出不可读。我的视频是灰色,这可能就是我遇到这个问题的原因。我无法找到有关如何使用 VideoWriter_fourcc & VideoWriter 不同的参数。我知道视频是256x320 uint8。

import numpy as np
import cv2

#MOG2 Backgroundsubstrator
cap = cv2.VideoCapture('videotest.avi')

fgbg = cv2.createBackgroundSubtractorMOG2()
##
# Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (256,320))
##
while(cap.isOpened()):
    ret, frame = cap.read()
    fgmask = fgbg.apply(frame)  

    if ret==True:
        cv2.imshow('frame',fgmask)
        out.write(fgmask)
        k = cv2.waitKey(30) & 0xff
        if k == 27:
            break
    else:
        break 

cap.release()
out.release()
cv2.destroyAllWindows()

1 个答案:

答案 0 :(得分:0)

使用:

fourcc = cv2.VideoWriter_fourcc(*'XVID')

如果按原样编写视频,则有效。在这种情况下,我试图用背景减法来编写视频。修复是:

fourcc = cv2.VideoWriter_fourcc(*'DIB ')

注意:不要忘记DIB之后的空间。我正在使用Python 3.5& OpenCV3.1