我试图在Python中使用cv2.createBackgroundSubtractorMOG2()方法.我在我的Mac和我的Raspberry Pi上都试过了,并且在运行以下代码行时遇到同样的错误:
fgbg = cv2.createBackgroundSubtractorMOG2()
Run Code Online (Sandbox Code Playgroud)
运行此代码时出现以下错误:
fgbg = cv2.createBackgroundSubtractorMOG2()AttributeError:'module'对象没有属性'createBackgroundSubtractorMOG2'
我似乎无法使用任何createBackgroundSubtractor方法.
我一直试图在过去的一天解决这个问题,但我没有在线搜索,因为在Python上对cv2的支持有限.
提前致谢
我是使用OpenCV,Python和Numpy的新手,但现在已经是Java,C++,C程序员了.
我正在实现一个sigma-delta背景检测器,它执行以下操作:
让i1成为第一张图片,让i2成为第二张图片
for each pixel:
if i1(x,y) > i2(x,y), then i2(x,y) = i2(x,y) + 1
if i1(x,y) < i2(x,y), then i2(x,y) = i2(x,y) - 1
Run Code Online (Sandbox Code Playgroud)
我基本上试图遍历2D图像阵列并将像素值与其他图像进行比较,但我很难使用for循环来处理numpy数组.我尝试过使用嵌套for循环,但是我得到一个错误,说我无法访问该数组的元素.
编辑:
for x in range (width):
for y in range (height):
if Mt [x,y] > It[x,y]:
Mt [x,y] = Mt[x,y]+1
elif Mt [x,y] < It[x,y]:
Mt [x,y] = Mt[x,y]-1
Run Code Online (Sandbox Code Playgroud)
这是有效的,但似乎并不优雅或高效.我希望有更快的解决方案......
任何建议都是最受欢迎的