资源简介
此算法可以用于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\ob
文件 1045 2008-02-27 08:40 25811223ptzTracking\ob
文件 4943 2008-02-19 18:25 25811223ptzTracking\ob
文件 699 2008-02-19 18:25 25811223ptzTracking\ob
文件 18960 2008-02-25 18:14 25811223ptzTracking\ob
文件 2872 2008-02-19 18:25 25811223ptzTracking\ob
文件 2518 2008-02-19 18:25 25811223ptzTracking\ob
文件 554 2008-02-19 18:25 25811223ptzTracking\ob
文件 2484 2008-02-27 08:40 25811223ptzTracking\ob
文件 568 2007-10-05 05:49 25811223ptzTracking\ob
目录 0 2009-07-09 13:23 25811223ptzTracking
----------- --------- ---------- ----- ----
74607 18
- 上一篇:关于图像增强的一些代码
- 下一篇:CPU_电路图、很详细的电路图
相关资源
- Siamese-RPN_code
- 基于opencv + 多线程的目标跟踪
- 多机动目标跟踪的IMM_GMPHD滤波算法_严
- 论文研究-基于时空上下文和自适应特
- MCPF跟踪算法源码
- PTZ控制代码
- 基于不敏卡尔曼滤波的目标跟踪算法
- IMM多模型滤波目标跟踪
- meanshift算法实现.rar
- DM642上的meanshift代码主要部分
- 基于mean shift的医学影像分割
- 基于均值漂移的视频目标跟踪改进算
- sift动态背景下实现目标跟踪
- 多目标跟踪方法综述.pdf
- surf 特征点 用于目标跟踪
- 多目标跟踪仿真
- IMM_CA_CT.zip
- 基于kalman滤波的meanshift算法
- KCF目标跟踪算法源码
- 基于OPENCV的运动目标跟踪实现.zip
- 卡尔曼滤波在目标跟踪算法中的应用
- 联合概率数据互联算法进行多目标跟
- 卡尔曼滤波在目标跟踪中的应用仿真
- 结合了混合高斯背景建模的camshift目标
- meanshift总结
- “当前”统计模型机动目标跟踪的改
- EKF 方位跟踪算法
- 利用变分贝叶斯算法进行目标跟踪
- 各种目标跟踪算法程序KF,EKF,UKF
- 基于遗传算法的粒子滤波器在目标跟
评论
共有 条评论