Opencv 3.4.4 createBackgroundSubtractorKNN 学习率不起作用

问题描述 投票:0回答:1

我在树莓派上使用OpenCV 3.4.4,我想在流视频上执行BackgroundSubtractorKNN。我使用前 300 帧作为背景,learning_rate = 1,然后我想使用这个模型来找到我的对象。因此,我将learning_rate设置为0,但模型会继续学习,如果对象保持稳定,它就会完全消失。

fgbg = cv2.createBackgroundSubtractorKNN(history=history,detectShadows=True)
inc=0
while inc<300
  frame = cap.read()
  fgmask = fgbg.apply(frame,1)
  #fgbg.apply(frame, fgmask, -1) # I used also this method but won't work
  inc +=1

while True
  frame = cap.read()
  fgmask = fgbg.apply(frame,0)
  #fgbg.apply(frame, fgmask, 0) # I used also this method but won't work
  cv2.imshow("Frame", frame)

我发现了这个问题,我尝试应用该解决方案,但没有效果。这是一个错误吗?因为我有另一个安装了 opencv 3.1 的 Raspberry pi,并且此代码完美运行。

我该怎么办?

python-3.x opencv raspberry-pi3
1个回答
0
投票

我遇到了同样的问题,因此我认为这是一个错误。我尝试将

createBackgroundSubtractorMOG2()
替换为
createBackgroundSubtractorKNN()
,结果确实符合预期。

© www.soinside.com 2019 - 2024. All rights reserved.