};
MOG_BGS.cpp
- #include "MOG_BGS.h"
- MOG_BGS::MOG_BGS(void)
- {
- }
- MOG_BGS::~MOG_BGS(void)
- {
- }
- // 全部初始化为0
- void MOG_BGS::init(const Mat _image)
- {
- /****initialization the three parameters ****/
- for(int i = 0; i < GMM_MAX_COMPONT; i++)
- {
- m_weight[i] = Mat::zeros(_image.size(), CV_32FC1);
- m_mean[i] = Mat::zeros(_image.size(), CV_8UC1);
- m_sigma[i] = Mat::zeros(_image.size(), CV_32FC1);
- }
- m_mask = Mat::zeros(_image.size(),CV_8UC1);
- m_fit_num = Mat::ones(_image.size(),CV_8UC1);
- }
- //gmm第一帧初始化函数实现
- //捕获到第一帧时对高斯分布进行初始化.主要包括对每个高斯分布的权值、期望和方差赋初值.
- //其中第一个高斯分布的权值为1,期望为第一个像素数据.其余高斯分布权值为0,期望为0.
- //每个高斯分布都被赋予适当的相等的初始方差 15
- void MOG_BGS::processFirstFrame(const Mat _image)
- {
- for(int i = 0; i < GMM_MAX_COMPONT; i++)
- {
- if (i == 0)
- {
- m_weight[i].setTo(1.0);
- _image.copyTo(m_mean[i]);
- m_sigma[i].setTo(15.0);
- }
- else
- {
- m_weight[i].setTo(0.0);
- m_mean[i].setTo(0);
- m_sigma[i].setTo(15.0);
- }
- }