资源简介

meanshift和粒子滤波的目标跟踪的相关代码。

资源截图

代码片段和文件信息

/*  
  基于彩色直方图和Kalman滤波的视频跟踪算法
  Version 0.9
  Written by Y. B. Mao
  Visual Information Processing and Analysis Group (ViPAG) 
  Nanjing University of Sci. & Tech.
  www.open-image.org
  Feb. 9 2006
  All rights reserved.

  Kalman滤波算法的详细描述,参见:
  [1] 徐士良. C常用算法程序集. 清华大学出版社. 1994.

  Mean shift跟踪算法的详细描述,请参见:
  [1] D. Comaniciu V. Ramesh P. Meer. Real-time tracking of non-rigid
  objects using mean shift. Proc. Conf. Vision Pattern Rec. II: 142-149 
  Hilton Head SC June 2000.
  [2] Dorin Comaniciu Visvanathan Ramesh Peter Meer. Kernel-based object
  tracking. IEEE Trans. on Pattern Analysis and Machine Intelligence. 
  Vol.25 No. 5 2003 pp. 554-577.
  [3] Huimin QIAN Yaobin MAO Jason GENG Zhiquan WANG. object tracking with 
  self-updating tracking window. PAISI‘2007.

  本代码只可用于非商业用途。如使用本代码请在论文中标注上述三篇参考文献。
*/

# include 
# include 
# include 
# include “MeanShift_KL.h“

/*
  用全选主元Gauss-Jordan法求n阶实矩阵A的逆矩阵A^{-1}
  输入参数:
  double * a:     原矩阵,为一个方阵
  int n:          矩阵维数
  输出参数:
  double * a:     求得的逆矩阵
  返回值:
  如果返回标记为0,表示矩阵奇异;否则返回非0值
*/
int brinv( double * a int n )

int * is * js i j k l u v;
double dp;

is = (int *)malloc( n*sizeof(int) );
js = (int *)malloc( n*sizeof(int) );
for ( k = 0; k < n; k++ )

d = 0.0;
for ( i = k; i < n; i++ )
for ( j = k; j < n; j++ )

l = i*n+j;
p = fabs(a[l]);
if ( p > d ) 

d = p; is[k] = i; js[k] = j;
}
}
if ( d+1.0 == 1.0 ) /* 矩阵为奇异阵 */

free( is ); 
free( js ); 
// printf(“err**not inv\n“);
return( 0 );
}
if ( is[k] != k )
for ( j = 0; j < n; j++ )

u = k*n+j;
v = is[k]*n+j;
p = a[u]; a[u] = a[v]; a[v] = p;
}
if ( js[k] != k )
for ( i = 0; i < n; i++ )

u = i*n+k;
v = i*n+js[k];
p = a[u]; a[u] = a[v]; a[v] = p;
}
l = k*n+k;
a[l] = 1.0/a[l];
for ( j = 0; j < n; j++ )
if ( j != k )

u = k*n+j;
a[u] = a[u]*a[l];
}
for ( i = 0; i < n; i++ )
if ( i != k )
for ( j = 0; j < n; j++ )
if ( j != k )

u = i*n+j;
a[u] = a[u] - a[i*n+k]*a[k*n+j];
}
for ( i = 0; i < n; i++ )
if ( i != k )

u = i*n+k;
a[u] = -a[u]*a[l];
}
}
for ( k = n-1; k >= 0; k-- )

if ( js[k] != k )
for ( j = 0; j <= n-1; j++ )

u = k*n+j;
v = js[k]*n+j;
p = a[u]; a[u] = a[v]; a[v] = p;
}
if ( is[k] != k )
for ( i = 0; i < n; i++ )

u = i*n+k;
v = i*n+is[k];
p = a[u]; a[u] = a[v]; a[v] = p;
}
}
free( is );
free( js );

return(1);
}

/*
  一步Kalman滤波程序
  对n维线性动态系统与m维线性观测系统
   X_k = A_kk-1*X_k-1 + W_k-1
   Y_k = H_k*X_k + V_k
  k = 12...
  X_k为n维状态向量,Y_k为m维观测向量。
  A_kk-1(nxn维)为状态转移阵,H_k(nxm维)为观测矩阵
  W_k为n维状态噪声向量,一般假设为高斯白噪声,且均值为0,协方差为Q_k
  V_k为m维观测噪声向量,一般假设为高斯白噪声,且均值为0,协方差为R_k

  Kalman滤波问题就是在已知k个观测向量Y_0Y_1

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

     文件      23392  2008-06-04 12:15  VideoTrack_code\MSTracking\MeanShift_KL.cpp

     文件       2663  2008-06-04 12:17  VideoTrack_code\MSTracking\MeanShift_KL.h

     文件       1653  2008-06-04 16:08  VideoTrack_code\MSTracking\readme.txt

     目录          0  2008-06-04 17:23  VideoTrack_code\MSTracking\release

     文件       4410  2008-06-04 15:46  VideoTrack_code\MSTracking\SamplGrabberProcessor.cpp

     文件       1185  2008-06-04 15:46  VideoTrack_code\MSTracking\SamplGrabberProcessor.h

     文件      10453  2008-06-04 16:08  VideoTrack_code\MSTracking\TrackingMS.cpp

     文件       3899  2008-06-04 15:48  VideoTrack_code\MSTracking\TrackingMS.dsp

     文件        543  2006-02-13 23:26  VideoTrack_code\MSTracking\TrackingMS.dsw

     文件      58368  2008-06-04 16:08  VideoTrack_code\MSTracking\TrackingMS.ncb

     文件      49664  2008-06-04 16:08  VideoTrack_code\MSTracking\TrackingMS.opt

     文件       1645  2008-06-04 16:08  VideoTrack_code\MSTracking\TrackingMS.plg

     目录          0  2008-06-04 16:39  VideoTrack_code\MSTracking

     文件      24615  2008-06-04 16:57  VideoTrack_code\ParticleTracking\ParticleTracking.cpp

     文件       2641  2008-06-04 16:56  VideoTrack_code\ParticleTracking\ParticleTracking.h

     文件       1554  2008-06-04 16:53  VideoTrack_code\ParticleTracking\readme.txt

     目录          0  2008-06-04 17:31  VideoTrack_code\ParticleTracking\Release

     文件       4641  2008-06-04 16:57  VideoTrack_code\ParticleTracking\SamplGrabberProcessor.cpp

     文件       1541  2008-06-04 16:57  VideoTrack_code\ParticleTracking\SamplGrabberProcessor.h

     文件      10734  2008-06-04 16:57  VideoTrack_code\ParticleTracking\Tracker_Particle.cpp

     文件       3969  2006-02-14 12:24  VideoTrack_code\ParticleTracking\Tracker_Particle.dsp

     文件        555  2006-02-14 12:24  VideoTrack_code\ParticleTracking\Tracker_Particle.dsw

     文件      66560  2008-06-04 16:57  VideoTrack_code\ParticleTracking\Tracker_Particle.ncb

     文件      50688  2008-06-04 16:57  VideoTrack_code\ParticleTracking\Tracker_Particle.opt

     文件       1894  2008-06-04 16:57  VideoTrack_code\ParticleTracking\Tracker_Particle.plg

     目录          0  2008-06-04 17:15  VideoTrack_code\ParticleTracking

     文件    1746620  2008-06-04 11:57  VideoTrack_code\test.avi

     目录          0  2008-06-04 17:31  VideoTrack_code

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

              2074105                    29

............此处省略2个文件信息

评论

共有 条评论