转载请注明出处:http://blog.csdn.net/xiaowei_cqu/article/details/7566070
在做火灾检测时尝试了一下用OpenCV中自带的高斯混合背景建模,由于是快速应用,也没推敲太细,日后有机会再研究吧。
如果只是应用,不推敲原理是很简单的。OpenCV自己有一个高斯模型,源代码在安装目录...\opencvsetuppath\src\cvaux的cvbgfg_gaussmix.cpp文件中。
具体算法是根据P. KaewTraKulPong and R. Bowden的论文《An Improved Adaptive Background Mixture Model for Real-time Tracking with Shadow Detection》实现的
源码看起来很简单,除了构造、析构函数,不过几个函数:
//初始化函数
void BackgroundSubtractorMOG::initialize(Size _frameSize, int _frameType);
//处理单通道图像
static void process8uC1( BackgroundSubtractorMOG& obj, const Mat& image, Mat& fgmask, double learningRate );
//处理多通道图像
static void process8uC3( BackgroundSubtractorMOG& obj, const Mat& image, Mat& fgmask, double learningRate );
//重载构造