mirror of
https://github.com/opencv/opencv.git
synced 2024-11-29 22:00:25 +08:00
Merge pull request #3786 from jviney:fix_background_subtractor_knn_width_step
This commit is contained in:
commit
8c69266cbf
@ -458,10 +458,8 @@ CV_INLINE void
|
||||
uchar nShadowDetection
|
||||
)
|
||||
{
|
||||
int size=_src.rows*_src.cols;
|
||||
int nchannels = CV_MAT_CN(_src.type());
|
||||
const uchar* pDataCurrent=_src.ptr(0);
|
||||
uchar* pDataOutput=_dst.ptr(0);
|
||||
|
||||
//model
|
||||
uchar* m_aModel=_bgmodel.ptr(0);
|
||||
uchar* m_nNextLongUpdate=_nNextLongUpdate.ptr(0);
|
||||
@ -509,48 +507,51 @@ CV_INLINE void
|
||||
if (_nLongCounter >= m_nLongUpdate) _nLongCounter = 0;
|
||||
|
||||
//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;
|
||||
pDataCurrent=pDataCurrent+nchannels;
|
||||
|
||||
//update model+ background subtract
|
||||
uchar include=0;
|
||||
int result= _cvCheckPixelBackgroundNP(i, data, nchannels,
|
||||
m_nN, m_aModel, m_fTb,m_nkNN, m_fTau,m_bShadowDetection,include);
|
||||
|
||||
_cvUpdatePixelBackgroundNP(i,data,nchannels,
|
||||
m_nN, m_aModel,
|
||||
m_nNextLongUpdate,
|
||||
m_nNextMidUpdate,
|
||||
m_nNextShortUpdate,
|
||||
m_aModelIndexLong,
|
||||
m_aModelIndexMid,
|
||||
m_aModelIndexShort,
|
||||
m_nLongCounter,
|
||||
m_nMidCounter,
|
||||
m_nShortCounter,
|
||||
m_nLongUpdate,
|
||||
m_nMidUpdate,
|
||||
m_nShortUpdate,
|
||||
include
|
||||
);
|
||||
switch (result)
|
||||
for (long x = 0; x < _src.cols; x++)
|
||||
{
|
||||
case 0:
|
||||
//foreground
|
||||
(* pDataOutput)=255;
|
||||
break;
|
||||
case 1:
|
||||
//background
|
||||
(* pDataOutput)=0;
|
||||
break;
|
||||
case 2:
|
||||
//shadow
|
||||
(* pDataOutput)=nShadowDetection;
|
||||
break;
|
||||
const uchar* data = _src.ptr(y, x);
|
||||
|
||||
//update model+ background subtract
|
||||
uchar include=0;
|
||||
int result= _cvCheckPixelBackgroundNP(i, data, nchannels,
|
||||
m_nN, m_aModel, m_fTb,m_nkNN, m_fTau,m_bShadowDetection,include);
|
||||
|
||||
_cvUpdatePixelBackgroundNP(i,data,nchannels,
|
||||
m_nN, m_aModel,
|
||||
m_nNextLongUpdate,
|
||||
m_nNextMidUpdate,
|
||||
m_nNextShortUpdate,
|
||||
m_aModelIndexLong,
|
||||
m_aModelIndexMid,
|
||||
m_aModelIndexShort,
|
||||
m_nLongCounter,
|
||||
m_nMidCounter,
|
||||
m_nShortCounter,
|
||||
m_nLongUpdate,
|
||||
m_nMidUpdate,
|
||||
m_nShortUpdate,
|
||||
include
|
||||
);
|
||||
switch (result)
|
||||
{
|
||||
case 0:
|
||||
//foreground
|
||||
*_dst.ptr(y, x) = 255;
|
||||
break;
|
||||
case 1:
|
||||
//background
|
||||
*_dst.ptr(y, x) = 0;
|
||||
break;
|
||||
case 2:
|
||||
//shadow
|
||||
*_dst.ptr(y, x) = nShadowDetection;
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
pDataOutput++;
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user