无法读取视频输出
Cannot read video output
我正在使用背景减法示例。它运行良好,但视频输出不可读。我的视频是 gray 所以这可能是我遇到这个问题的原因。我找不到太多关于如何使用 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(*'XVID')
按原样编写视频即可。在这种情况下,我正在尝试使用背景减法来编写视频。修复是:
fourcc = cv2.VideoWriter_fourcc(*'DIB ')
注意:不要忘记DIB后的space。我正在使用 Python 3.5 和 OpenCV3.1
我正在使用背景减法示例。它运行良好,但视频输出不可读。我的视频是 gray 所以这可能是我遇到这个问题的原因。我找不到太多关于如何使用 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(*'XVID')
按原样编写视频即可。在这种情况下,我正在尝试使用背景减法来编写视频。修复是:
fourcc = cv2.VideoWriter_fourcc(*'DIB ')
注意:不要忘记DIB后的space。我正在使用 Python 3.5 和 OpenCV3.1