cv2.createBackgroundSubtractorMOG2()错误

时间:2016-04-18 05:52:24

标签: python opencv image-processing background-subtraction

有人可以帮我这个吗? 我正在尝试使用后台减法方法,并且在以前的opencv版本中使用cv2.BackgroundSubtractorMOG()方法时,用于完美运行。

import cv2
backsub = cv2.createBackgroundSubtractorMOG2()
capture = cv2.VideoCapture("headcount.avi")
i = 0
if capture:
  while True:

    ret, frame = capture.read()
    if ret:
        fgmask = backsub.apply(frame, None, 0.01)
        erode=cv2.erode(fgmask,Nonei,terations=3)
        moments=cv2.moments(erode,True)        

但是使用opencv 3.1.0我在使用cv2.createBackgroundSubtractorMOG2()函数时遇到问题,这是我在应用掩码操作时遇到的错误

错误:  fgmask = backsub.apply(frame,1,0.01) 错误:C:\ builds \ master_PackSlaveAddon-win32-vc12-static \ opencv \ modules \ python \ src2 \ cv2.cpp:163:错误:( - 215)数据通常应为NULL!在函数NumpyAllocator :: allocate

2 个答案:

答案 0 :(得分:1)

这是OpenCV 3.1的错误。 您可以禁用OpenCL支持作为解决方法。 细节在这里 https://github.com/Itseez/opencv/issues/6055

答案 1 :(得分:0)

只需将其添加到您的代码中即可。

cv2.ocl.setUseOpenCL(False)

更多信息: https://github.com/opencv/opencv/issues/6055