Python 3.x 无法读取视频输出

Python 3.x 无法读取视频输出,python-3.x,anaconda,opencv3.0,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.createBackground

我用这个例子来做背景减法。它工作正常,但视频输出无法读取。我的视频是灰色的,这可能就是我遇到这个问题的原因。我找不到多少关于如何使用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()
使用:

如果您按原样编写视频,则可以正常工作。在本例中,我尝试使用背景减法编写视频。解决办法是:

fourcc = cv2.VideoWriter_fourcc(*'DIB ')
注:请勿忘记DIB后的空格。我正在使用Python3.5和OpenCV3.1

fourcc = cv2.VideoWriter_fourcc(*'DIB ')