资源简介

此算法可以用于ptz目标跟踪算法,是一个比较适用的算法,并且效果也非常不错!大家快来看啊!

资源截图

代码片段和文件信息

#include “ForegroundSeg.h“
#include “LkTracker.h“
#include “Log.h“
#include “DrawTools.h“
#include “operatorforcvtype.h“
#include “highgui.h“
#include “objectDetection_RefinedDiffImg.h“
#include “CommonFunctions.h“

CForegroundSeg::CForegroundSeg(void)
{

// m_aviwriter.Init(“c:\\sizecalculate.avi“cvSize(320240)FOURCC(‘X‘‘V‘‘I‘‘D‘)) ; 
m_conrer_quality = 0.01;
m_corner_mindistance = 20;
m_corner_maxfeatures = 50;
m_bgsubthresh =20 ; 

m_imgsize = cvSize(00); 
m_bgimg=NULL;
m_grayimg=NULL ; 
m_warpbgimg=NULL ; 
m_diffgrayimg=NULL;
m_binimg=NULL ; 
m_lktracker = NULL  ;
m_lastframe = NULL ; 
m_framecount = 0 ; 
m_inited = false;
m_lastframe = NULL;
m_bgflagimg = NULL;
m_showimg = NULL ; 

m_diffthresh = 3;
m_continueframes =  4;
m_bgblendweight  = 0.1;
m_largestrect = cvRect(0000);
}

CForegroundSeg::~CForegroundSeg(void)
{
Clean();
}


bool CForegroundSeg::init(IplImage * firstframeIplImage* maskimage)
{
ASSERT(firstframe->nChannels==3) ;//assume color image

{
Clean();
m_imgsize = cvGetSize(firstframe) ; 
m_bgimg = cvCreateImage(m_imgsize83) ; 
m_warpbgimg = cvCreateImage(m_imgsize83) ; 
m_lastframe = cvCreateImage(m_imgsize83) ; 
m_grayimg = cvCreateImage(m_imgsize81) ; 
m_diffgrayimg = cvCreateImage(m_imgsize81) ; 
m_binimg = cvCreateImage(m_imgsize81) ; 
m_bgflagimg = cvCreateImage(m_imgsize81) ; 
m_showimg= cvCreateImage(m_imgsize83) ; 

cvZero(m_bgflagimg);
m_lktracker =  new CLkTracker;
m_lktracker->Initialize(m_imgsize) ; 
}

cvCopy(firstframem_bgimgmaskimage) ; 
m_framecount = 0 ; 
cvCvtColor(firstframe m_grayimgCV_BGR2GRAY) ; 


m_lktracker->SetFirstframe(m_grayimg);
m_lktracker->SetFeaturePointsFromImage(m_grayimgm_corner_maxfeaturesm_conrer_qualitym_corner_mindistanceNULLNULL) ; 
m_inited = true; 
return true;
}

void CForegroundSeg::Clean()
{
m_imgsize = cvSize(00); 
cvReleaseImage(&m_bgimg);
cvReleaseImage(&m_grayimg) ; 
cvReleaseImage(&m_warpbgimg) ; 
cvReleaseImage(&m_diffgrayimg);
cvReleaseImage(&m_binimg) ; 
cvReleaseImage(&m_lastframe) ; 
cvReleaseImage(&m_bgflagimg) ; 
cvReleaseImage(&m_showimg) ; 
if(m_lktracker!=NULL)
{
delete m_lktracker;
m_lktracker = NULL  ;
}
m_framecount = 0 ; 
m_inited = false;
m_largestrect = cvRect(0000);
}
static inline int dcolor(const uchar * aconst uchar*b) 
{
return (abs(a[0]-b[0]) + abs(a[1]-b[1])+abs(a[2]-b[2]))/4;

//int t[3] = { abs(a[0]-b[0])  abs(a[1]-b[1]) abs(a[2]-b[2])};
//int maxt = std::max(t[0]t[1]);
//return std::max(maxtt[2]) ; 
}
static inline void cpcolor(const uchar * auchar*b) 
{
b[0] = a[0] ;
b[1] = a[1] ;
b[2] = a[2] ;
}
//blend two rgb color assume w1+w2=256
static inline void blendcolor(const uchar*aconst uchar*buchar*cint w1int w2)
{
c[0] = ((int)a[0]*w1+(int)(b[0])*w2)/256;
c[1] = ((int)a[1]*w1+(int)(b[1])*w2)/2

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      17733  2008-02-13 17:40  25811223ptzTracking\ForegroundSeg.cpp

     文件       4482  2008-02-04 17:05  25811223ptzTracking\ForegroundSeg.h

     文件       2981  2008-02-13 17:44  25811223ptzTracking\GPyramid.cpp

     文件        973  2008-02-27 08:40  25811223ptzTracking\GPyramid.h

     文件       7363  2008-02-13 10:17  25811223ptzTracking\KalmanFilter.cpp

     文件       2746  2008-02-13 10:17  25811223ptzTracking\KalmanFilter.h

     文件       3468  2008-02-27 08:40  25811223ptzTracking\objectDetection.cpp

     文件       1045  2008-02-27 08:40  25811223ptzTracking\objectDetection.h

     文件       4943  2008-02-19 18:25  25811223ptzTracking\objectDetection_Diffimg.cpp

     文件        699  2008-02-19 18:25  25811223ptzTracking\objectDetection_Diffimg.h

     文件      18960  2008-02-25 18:14  25811223ptzTracking\objectDetection_RefinedDiffImg.cpp

     文件       2872  2008-02-19 18:25  25811223ptzTracking\objectDetection_RefinedDiffImg.h

     文件       2518  2008-02-19 18:25  25811223ptzTracking\objectDetection_SmartCatch.cpp

     文件        554  2008-02-19 18:25  25811223ptzTracking\objectDetection_SmartCatch.h

     文件       2484  2008-02-27 08:40  25811223ptzTracking\objectSizeEstimator.cpp

     文件        568  2007-10-05 05:49  25811223ptzTracking\objectSizeEstimator.h

     目录          0  2009-07-09 13:23  25811223ptzTracking

----------- ---------  ---------- -----  ----

                74607                    18


评论

共有 条评论