BackgroundSubtractorMOG чувствительность

Я использую фоновый вычитатель, который я объявил так:

BackgroundSubtractorMOG subtractor;

Теперь я хотел бы использовать вычитатель с нестандартными параметрами. Я пробовал количество комбинаций значений параметров в следующем объявлении:

BackgroundSubtractorMOG subtractor = BackgroundSubtractorMOG(100, 10, 0.9 20);

Однако я не вижу никакой разницы в маске переднего плана, создаваемой subtractor, как будто параметры не имеют никакого эффекта.

Я не правильно настраиваю параметры? Как правильно их установить?

3

Решение

У меня та же проблема, кажется, что параметры, предлагаемые конструктором, не влияют на детектор, я получил хорошее вычитание фона с параметрами по умолчанию, но также плохую производительность. Я получил лучшие результаты по производительности, используя вариацию под названием: BackgroundSubtractorMOG2. Вы можете использовать ее так же, как и BackgroundSubtractorMOG.
cv::BackgroundSubtractorMOG2 mog;
//--Update Background
mog(frame,foreground,0.01);

2

Другие решения

когда вы получаете маску переднего плана, вы устанавливаете learningRate? В Java-версии OpenCV, которую я использую для приложения Android, я создаю маску переднего плана следующим образом:

subtractor.apply(mRgb, mFGMask, 0.1);

Эта скорость обучения 0,1 работает очень быстро. Я думаю, что требуется 10 кадров, чтобы полностью затемнить мою выходную маску на черный экран.

1