Python 3.x createBackgroundSubtractor opencv python getBackgroundImage未实现

Python 3.x createBackgroundSubtractor opencv python getBackgroundImage未实现,python-3.x,opencv,Python 3.x,Opencv,我想知道python中opencv的backroundSubractor类的行为,因为所有的孩子都应该有apply和getBackgroundImage。 但是,如果我调整python示例以显示背景而不是前景,它适用于: CreateBackgroundSoC createBackgroundSubtractorCNT CreateBackgroundsEnn CreateBackgroundsBP createBackgroundSubtractorMOG2 但对于2来说,它不起作用:

我想知道python中opencv的backroundSubractor类的行为,因为所有的孩子都应该有apply和getBackgroundImage。 但是,如果我调整python示例以显示背景而不是前景,它适用于:

  • CreateBackgroundSoC
  • createBackgroundSubtractorCNT
  • CreateBackgroundsEnn
  • CreateBackgroundsBP
  • createBackgroundSubtractorMOG2
但对于2来说,它不起作用:

  • createBackgroundSubtractorMOG
  • CreateBackgroundsOrgMG
这种行为是故意的还是出了什么问题

我的代码:

import numpy as np
import cv2

cap = cv2.VideoCapture('vtest.avi')
fgbg=cv2.bgsegm.createBackgroundSubtractorMOG()
#works
#fgbg=cv2.bgsegm.createBackgroundSubtractorGSOC()
#fgbg=cv2.bgsegm.createBackgroundSubtractorCNT()
#fgbg=cv2.createBackgroundSubtractorKNN()
#fgbg=cv2.bgsegm.createBackgroundSubtractorLSBP()
#fgbg = cv2.createBackgroundSubtractorMOG2(100, 16, 0)

#error
#fgbg=cv2.bgsegm.createBackgroundSubtractorMOG()
#fgbg=cv2.bgsegm.createBackgroundSubtractorGMG()

while(1):
    ret, frame = cap.read()
    height = np.size(frame,0)
    width = np.size(frame,1)
    blank_image = np.zeros((height, width, 3), np.uint8)

    fgmask = fgbg.apply(frame)
    bgmask=fgbg.getBackgroundImage()

    cv2.imshow('frame', bgmask)
    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break

cap.release()
cv2.destroyAllWindows()

定义“不工作”。如消息所示,在函数“cv::bgsegm::BackgroundSubtractorMOGImpl::getBackgroundImage”中出现如下错误:bgmask=fgbg.getBackgroundImage()cv2.error:OpenCV(3.4.2)C:\projects\OpenCV python\OpenCV_contrib\modules\bgsegm\bgsegm\src\bgfg_gausmix.cpp:127:error:(-213:函数/功能未实现),这个功能在这两个类中都有。C的行为相同吗?在python实现中,您是对的,因为这是一个错误。但有两个可能的原因。1.没有回溯映像,或者到目前为止还没有人为这些类实现它。我只是想了解这些行为的原因。这个错误来自C++实现,Python只是一个薄薄的包装器。这是第二个原因——noone实现了它(上面的链接显示函数体仅由抛出错误的语句组成)。至于原因,您必须找到代码的原始作者并询问他们。我的猜测是,从所使用的模型重建有意义的背景图像是困难的/不切实际的。