aihot  2017-04-26 12:19:58  OpenCV |   查看评论   
  •                  m_sigma[GMM_MAX_COMPONT-1].at<float>(i, j) = 15.0;  
  •              }  
  •              /*********************** Create new Gaussian component End ****************************/  
  •          }  
  •     }  
  • }  
  •   
  •  //对输入图像每个像素gmm选择合适的高斯分量个数  
  •  //排序后最有可能是背景分布的排在最前面,较小可能的短暂的分布趋向于末端.我们将排序后的前fit_num个分布选为背景模型;  
  •  //在排过序的分布中,累积概率超过GMM_THRESHOD_SUMW的前fit_num个分布被当作背景模型,剩余的其它分布被当作前景模型.  
  • void MOG_BGS::getFitNum(const Mat _image)  
  • {  
  •     for(int i = 0; i < _image.rows; i++)  
  •     {  
  •         for(int j = 0; j < _image.cols; j++)  
  •         {  
  •             float sum_w = 0.0;  //重新赋值为0,给下一个像素做累积  
  •             for(uchar k = 0; k < GMM_MAX_COMPONT; k++)  
  •             {  
  •                 sum_w += m_weight[k].at<float>(i, j);  
  •                 if(sum_w >= GMM_THRESHOD_SUMW)   //如果这里THRESHOD_SUMW=0.6的话,那么得到的高斯数目都为1,因为每个像素都有一个权值接近1  
  •                 {  
  •                      m_fit_num.at<uchar>(i, j) = k + 1;  
  •                      break;  
  •                 }  
  •             }  
  •         }  
  •     }  
  • }  
  •   
  •  //gmm测试函数的实现  
  • void MOG_BGS::testGMM(const Mat _image)  
  • {  
  •     for(int i = 0; i < _image.rows; i++)  
  •     {  
  •         for(int j = 0; j < _image.cols; j++)  
  •         {  
  •             int k = 0;  
  •             for( ; k < m_fit_num.at<uchar>(i, j); k++)  
  •  

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

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