您的位置:首页 > 其它

高斯背景建模学习之icvUpdateFullWindow函数篇

2013-11-17 12:57 246 查看


static void icvUpdateFullWindow( double* src_pixel, int nChannels, int* match,
CvGaussBGPoint* g_point,
const CvGaussBGStatModelParams *bg_model_params )

{
const double learning_rate_weight = (1.0/(double)bg_model_params->win_size);
for(int k = 0; k < bg_model_params->n_gauss; k++)
{
//这个就是更新权重,w=(1-a)w+a*m (a:更新率,m是匹配,匹配就是1,不匹配就是0)
//可以改写:
// g_point->g_values[k].weight = g_point->(1-learning_rate_weight)*g_values[k].weight
// +learning_rate_weight*(double)match[k]
g_point->g_values[k].weight = g_point->g_values[k].weight +
(learning_rate_weight*((double)match[k] -
g_point->g_values[k].weight));
//更新方差,均值等参数
if(match[k])
{
//learning_rate_gaussian实际就是p(在更新方差和均值要用的参数)
//实际上可以这样设置:
//double learning_rate_gaussian = ((double)match[k]*learning_rate_weight)/(g_point->g_values[k].weight
double learning_rate_gaussian = (double)match[k]/(g_point->g_values[k].weight*
(double)bg_model_params->win_size);
for(int m = 0; m < nChannels; m++)
{
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: