Переполнение стека в фоновой субстрации OpenCV

Я создал фоновый Subsctractor (MOG) и теперь я хочу изменить некоторые параметры:

Ptr< BackgroundSubtractor> pMOG, pMOG2;
pMOG = new BackgroundSubtractorMOG();
pMOG.set("varThreshold",5); //does't work
pMOG->operator()(inputImage, outputImage); //works, but the output is not enought "sensitive"

Кто-нибудь знает, как я мог справиться с этим? Я хочу изменить пороговое значение, потому что оно возвращает маску, которая не всегда обнаруживает мои движущиеся объекты (например, если их цвет почти соответствует цвету фона).

Спасибо!

3

Решение

Это потому что BackgroundSubtractorMOG не имеет параметра с именем varThreshold, Вы, вероятно, хотели установить этот параметр на BackgroundSubtractorMOG2,

Параметры для BackgroundSubtractorMOG являются:

"history""nmixtures""backgroundRatio""noiseSigma"

в то время как для BackgroundSubtractorMOG2 являются:

"history""nmixtures""varThreshold""detectShadows""backgroundRatio""varThresholdGen""fVarInit""fVarMin""fVarMax""fCT""nShadowDetection""fTau"

Вы можете найти эту информацию в video_init.cpp (проверено на OpenCV версии 2.4.9).


Вы также можете установить некоторые параметры непосредственно в конструкторе, что, вероятно, является самым безопасным способом.

2

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector