Python 使用GSOC的openCV背景减法

Python 使用GSOC的openCV背景减法,python,opencv,background-subtraction,Python,Opencv,Background Subtraction,我正在努力实现这个目标 但这给了我以下错误: fgmask = fgbg.apply(frame) TypeError: Incorrect type of self (must be 'bgsegm_BackgroundSubtractorGSOC' or its derivative) 及 给我这个错误: fgmask = cv.bgsegm_BackgroundSubtractorGSOC.apply(frame) TypeError: descriptor 'apply' requir

我正在努力实现这个目标

但这给了我以下错误:

fgmask = fgbg.apply(frame)
TypeError: Incorrect type of self (must be 'bgsegm_BackgroundSubtractorGSOC' or its derivative)

给我这个错误:

fgmask = cv.bgsegm_BackgroundSubtractorGSOC.apply(frame)
TypeError: descriptor 'apply' requires a 'cv2.bgsegm_BackgroundSubtractorGSOC' object but received a 'numpy.ndarray'
.apply()的文档说我只需要提供一个输入阵列(帧)、输出位置和学习速率。将
.apply(frame)
更改为
.apply(frame,output,-1)
不会修复错误

如何正确实现bgsegm_BackgroundSubtractorGSOC对象并在图像上使用它


但我似乎在这之前失败了一步,因为已经找到了GSOC和其他背景减法(除了MOG2和KNN),并且需要安装opencv contrib库。 安装后,可通过以下方式使用模块:

backSub = cv.bgsegm.createBackgroundSubtractorGSOC()
fgmask = cv.bgsegm_BackgroundSubtractorGSOC.apply(frame)
TypeError: descriptor 'apply' requires a 'cv2.bgsegm_BackgroundSubtractorGSOC' object but received a 'numpy.ndarray'
backSub = cv.bgsegm.createBackgroundSubtractorGSOC()