fixed the case learningRate==0 in BackgroundSubtractorMOG2 (patch #2221; thanks to Will Lucas)

This commit is contained in:
Vadim Pisarevsky 2012-09-11 14:13:37 +04:00
parent bb93651048
commit bbeffcc115

View File

@ -562,18 +562,15 @@ void BackgroundSubtractorMOG2::operator()(InputArray _image, OutputArray _fgmask
learningRate = learningRate >= 0 && nframes > 1 ? learningRate : 1./min( 2*nframes, history ); learningRate = learningRate >= 0 && nframes > 1 ? learningRate : 1./min( 2*nframes, history );
CV_Assert(learningRate >= 0); CV_Assert(learningRate >= 0);
if (learningRate > 0) parallel_for(BlockedRange(0, image.rows),
{ MOG2Invoker(image, fgmask,
parallel_for(BlockedRange(0, image.rows), (GMM*)bgmodel.data,
MOG2Invoker(image, fgmask, (float*)(bgmodel.data + sizeof(GMM)*nmixtures*image.rows*image.cols),
(GMM*)bgmodel.data, bgmodelUsedModes.data, nmixtures, (float)learningRate,
(float*)(bgmodel.data + sizeof(GMM)*nmixtures*image.rows*image.cols), (float)varThreshold,
bgmodelUsedModes.data, nmixtures, (float)learningRate, backgroundRatio, varThresholdGen,
(float)varThreshold, fVarInit, fVarMin, fVarMax, float(-learningRate*fCT), fTau,
backgroundRatio, varThresholdGen, bShadowDetection, nShadowDetection));
fVarInit, fVarMin, fVarMax, float(-learningRate*fCT), fTau,
bShadowDetection, nShadowDetection));
}
} }
void BackgroundSubtractorMOG2::getBackgroundImage(OutputArray backgroundImage) const void BackgroundSubtractorMOG2::getBackgroundImage(OutputArray backgroundImage) const