Python 3.x 无法读取视频输出
我用这个例子来做背景减法。它工作正常,但视频输出无法读取。我的视频是灰色的,这可能就是我遇到这个问题的原因。我找不到多少关于如何使用VideoWriter_fourcc和VideoWriter不同参数的信息。我知道视频是256x320 uint8Python 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
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 ')