python - cv2.createBackgroundSubtractorMOG2() 错误

标签 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

最佳答案

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

关于python - cv2.createBackgroundSubtractorMOG2() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36686350/

相关文章:

assembly - 膨胀或腐 eclipse 算法是否可以不使用单独的数组?

python - 使用 GUI 分发计算机应用程序 (Python)

Javascript string.length 不等于 Python len()

opencv - OpenNI + OpenCV 不适用于 CV_CAP_OPENNI C++

opencv - 如何检测照片中的文字

c# - 裁剪位图并根据需要扩大尺寸

python - 子进程 - Grep Broken Pipe

python - 列表追加会覆盖我以前的值

visual-studio - LNK2005 将静态 openCV 库与 Visual Studio 和 QT Creator 链接时出错

image - 如何使用低分辨率的裁剪照片作为指导,重新裁剪原始照片的高分辨率副本?