aihot  2017-04-26 12:19:58  OpenCV |   查看评论   
  • }  
  •    
  • // 通过新的帧来训练GMM  
  • void MOG_BGS::trainGMM(const Mat _image)  
  • {  
  •     for(int i = 0; i < _image.rows; i++)  
  •     {  
  •         for(int j = 0; j < _image.cols; j++)  
  •         {  
  •              int num_fit = 0;  
  •   
  •              /**************************** Update parameters Start ******************************************/  
  •              for(int k = 0 ; k < GMM_MAX_COMPONT; k++)  
  •              {  
  •                  int delm = abs(_image.at<uchar>(i, j) - m_mean[k].at<uchar>(i, j));  
  •                  long dist = delm * delm;  
  •                  // 判断是否匹配:采样值与高斯分布的均值的距离小于3倍方差(表示匹配)  
  •                  if( dist < 3.0 * m_sigma[k].at<float>(i, j))   
  •                  {  
  •                      // 如果匹配  
  •                      /****update the weight****/  
  •                      m_weight[k].at<float>(i, j) += GMM_LEARN_ALPHA * (1 - m_weight[k].at<float>(i, j));  
  •    
  •                      /****update the average****/  
  •                      m_mean[k].at<uchar>(i, j) += (GMM_LEARN_ALPHA / m_weight[k].at<uchar>(i, j)) * delm;  
  •    
  •                      /****update the variance****/  
  •                      m_sigma[k].at<float>(i, j) += (GMM_LEARN_ALPHA / m_weight[k].at<float>(i, j)) * (dist - m_sigma[k].at<float>(i, j));  
  •                  }  
  •                  else  
  •                  {  
  •                     // 如果不匹配。则该该高斯模型的权值变小  
  •                      m_weight[k].at<float>(i, j) += GMM_LEARN_ALPHA * (0 - m_weight[k].at<float>(i, j));  
  •  

    除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自运动检测(前景检测)之(二)混合高斯模型GMM

    留言与评论(共有 0 条评论)
       
    验证码:
    [lianlun]1[/lianlun]