如何使用cv2.BackgroundSubtractorMOG2
叠加初始帧输出视频?
这是我的代码:
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
fgbg = cv2.BackgroundSubtractorMOG2()
fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480), isColor = False)
while(cap.isOpened()):
ret, frame = cap.read()
if ret == True:
fgmask = fgbg.apply(frame)
cv2.imshow('original', frame)
cv2.imshow('fg', fgmask)
out.write(fgmask)
k = cv2.waitKey(30) & 0xFF
if k == 27:
break
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
这就是我得到的:
答案 0 :(得分:0)
您可以使用cv2.addWeighted功能来实现叠加效果
然而,请注意,MOG背景减法器不断更新它的想法"通过apply函数添加新帧的背景(这就是为什么它最终会删除最初在fg掩码中但已经静止太长时间的对象的原因),因此叠加的"初始帧"可能会误导你自己。如果你想看到fg蒙版的效果,你可能最好叠加前一帧/帧而不是初始帧