Merge pull request #3786 from jviney:fix_background_subtractor_knn_width_step

This commit is contained in:
Vadim Pisarevsky 2015-03-06 10:17:43 +00:00
commit 8c69266cbf

View File

@ -458,10 +458,8 @@ CV_INLINE void
uchar nShadowDetection uchar nShadowDetection
) )
{ {
int size=_src.rows*_src.cols;
int nchannels = CV_MAT_CN(_src.type()); int nchannels = CV_MAT_CN(_src.type());
const uchar* pDataCurrent=_src.ptr(0);
uchar* pDataOutput=_dst.ptr(0);
//model //model
uchar* m_aModel=_bgmodel.ptr(0); uchar* m_aModel=_bgmodel.ptr(0);
uchar* m_nNextLongUpdate=_nNextLongUpdate.ptr(0); uchar* m_nNextLongUpdate=_nNextLongUpdate.ptr(0);
@ -509,10 +507,12 @@ CV_INLINE void
if (_nLongCounter >= m_nLongUpdate) _nLongCounter = 0; if (_nLongCounter >= m_nLongUpdate) _nLongCounter = 0;
//go through the image //go through the image
for (long i=0;i<size;i++) long i = 0;
for (long y = 0; y < _src.rows; y++)
{ {
const uchar* data=pDataCurrent; for (long x = 0; x < _src.cols; x++)
pDataCurrent=pDataCurrent+nchannels; {
const uchar* data = _src.ptr(y, x);
//update model+ background subtract //update model+ background subtract
uchar include=0; uchar include=0;
@ -539,18 +539,19 @@ CV_INLINE void
{ {
case 0: case 0:
//foreground //foreground
(* pDataOutput)=255; *_dst.ptr(y, x) = 255;
break; break;
case 1: case 1:
//background //background
(* pDataOutput)=0; *_dst.ptr(y, x) = 0;
break; break;
case 2: case 2:
//shadow //shadow
(* pDataOutput)=nShadowDetection; *_dst.ptr(y, x) = nShadowDetection;
break; break;
} }
pDataOutput++; i++;
}
} }
}; };