Home || Visual Search || Applications || Architecture || Important Messages || OGL || Src

void Impala::Core::Tracking::TrackerBackFore::FormBackground (  )  [inline, private]

this function is called when there is a new position.

It tries to sample 2 squares of points outside the bounding box of the tracked object, taking care not to sample outside the image.

Definition at line 357 of file TrackerBackFore.h.

References Impala::Core::Geometry::Rectangle::Height(), ILOG_DEBUG, mBack, mBackMaxPoints, Impala::Core::Geometry::Rectangle::mBottom, mHeight, Impala::Core::Geometry::Rectangle::mLeft, mPosition, Impala::Core::Geometry::Rectangle::mRight, mSampleSpacing, Impala::Core::Geometry::Rectangle::mTop, mWidth, and Impala::Core::Geometry::Rectangle::Width().

Referenced by NewPosition(), and SearchObject().

00358     {
00359         mBack[0].mLeft = mPosition.mLeft - 3*mSampleSpacing;
00360         mBack[0].mTop = mPosition.mTop - 3*mSampleSpacing;
00361         mBack[0].mRight = mPosition.mRight + 3*mSampleSpacing -1;
00362         mBack[0].mBottom = mPosition.mTop -1;
00363 
00364         mBack[1].mLeft = mPosition.mLeft - 3*mSampleSpacing;
00365         mBack[1].mTop = mPosition.mTop - mSampleSpacing;
00366         mBack[1].mRight = mPosition.mLeft -1;
00367         mBack[1].mBottom = mPosition.mBottom + mSampleSpacing -1;
00368 
00369         mBack[2].mLeft = mPosition.mRight;
00370         mBack[2].mTop = mPosition.mTop - mSampleSpacing;
00371         mBack[2].mRight = mPosition.mRight + 3*mSampleSpacing -1;
00372         mBack[2].mBottom = mPosition.mBottom + mSampleSpacing -1;
00373 
00374         mBack[3].mLeft = mPosition.mLeft - 3*mSampleSpacing;
00375         mBack[3].mTop = mPosition.mBottom;
00376         mBack[3].mRight = mPosition.mRight + 3*mSampleSpacing -1;
00377         mBack[3].mBottom = mPosition.mBottom + 3*mSampleSpacing -1;
00378 
00379         if(mPosition.mLeft < 3*mSampleSpacing)
00380         {
00381             mBack[0].mLeft = 0;
00382             mBack[1].mLeft = 0;
00383             mBack[3].mLeft = 0;
00384         }
00385         if(mPosition.mTop < 3*mSampleSpacing)
00386         {
00387             mBack[0].mTop = 0;
00388         }
00389         if(mPosition.mRight+3*mSampleSpacing >= mWidth)
00390         {
00391             mBack[0].mRight = mWidth;
00392             mBack[2].mRight = mWidth;
00393             mBack[3].mRight = mWidth;
00394         }
00395         if(mPosition.mBottom+3*mSampleSpacing >= mHeight)
00396         {
00397             mBack[3].mBottom = mHeight;
00398         }
00399 
00400         int w = mBack[0].Width()/mSampleSpacing;
00401         int h = mBack[1].Height()/mSampleSpacing;
00402         ILOG_DEBUG("rect[0].w=" << w << " rect[1].h=" << h);
00403         w--;
00404         h--;
00405         ILOG_DEBUG("sample space = " << mSampleSpacing);
00406         mBackMaxPoints = (w * 4) + (h * 4);
00407         ILOG_DEBUG("maxpoints = "<<mBackMaxPoints<<" (4*"<<w<<" + 4*"<<h<<")");
00408     }

Here is the call graph for this function:


Generated on Thu Jan 13 09:21:07 2011 for ImpalaSrc by  doxygen 1.5.1