混合高斯背景建模(opecv)

2021-06-26 01:23:40 字數 2374 閱讀 3992

混合高斯背景建模是基於畫素樣本統計資訊的背景表示方法,利用畫素在較長時間內大量樣本值的概率密度等統計資訊(如模式數量、每個模式的均值和標準差)表示背景,然後使用統計差分(如3σ原則)進行目標畫素判斷,可以對複雜動態背景進行建模,計算量較大。

在混合高斯背景模型

高斯分布

來描述每個畫素點的顏色呈現規律【單模態(單峰),多模態(多峰)】。

詳細演算法流程:

更正:4中p的更新如下:

**如下:

// my_mixgaussians.cpp : 定義控制台應用程式的入口點。  

//

//#include "stdafx.h"

#include "cv.h"

#include "highgui.h"

int main(int argc,char *argv)

} }

//update gaussian components for each pixel

for (i=0;iimagedata[i*width+j];

sd[i*width*c+j*c+k] =sqrt((1-p)*(sd[i*width*c+j*c+k]*sd[i*width*c+j*c+k]) + p*(pow((uchar)current->imagedata[i*width+j] - mean[i*width*c+j*c+k],2)));

}else

temp += w[i*width*c+j*c+k];

} for(k=0;kimagedata[i*width+j] = (uchar)bg_bw[i*width+j];

//if no components match, create new component

if (match == 0)

for (k=0;krank[m])

} }

//calculate foreground

match = 0;k = 0;

//frg->imagedata[i*width+j]=0;

while ((match == 0)&&(k= thresh)

if (abs(u_diff[i*width*c+j*c+rank_ind[k]]) <= d*sd[i*width*c+j*c+rank_ind[k]])

else

frg->imagedata[i*width+j] = (uchar)current->imagedata[i*width+j];

k = k+1;

} }

}

mframe = cvqueryframe(capture);

cvshowimage("fore",frg);

cvshowimage("back",test);

cvshowimage("yuan",current);

char s=cvwaitkey(33);

if(s==27) break;

free(rank_ind);

} free(fg);free(w);free(mean);free(sd);free(u_diff);free(rank);

cvnamedwindow("back",0);

cvnamedwindow("fore",0);

cvnamedwindow("yuan",0);

cvreleasecapture(&capture);

cvdestroywindow("fore");

cvdestroywindow("back");

cvdestroywindow("yuan");

return 0;

}

程式執行結果:

從左到右依次為:前景,背景,原圖。

OpenCV混合高斯背景建模

本文主要內容是乙個混合高斯背景建模 1 的opencv例子。想要了解mog原理可以參考混合高斯背景建模原理及實現 opencv的mog例子 如下 include stdafx.h include include include include include include include incl...

高斯混合背景建模的改進方案

高斯混合背景建模原理 1 stauffer提出自適應混合高斯背景建模,通過融入幀間差分把每幀中的影象區分為背景區域 背景顯露區域和運動物體區域。相對於背景區域,背景顯露區中的畫素點將以大的更新率更新背景模型,使得長時間停滯物體由背景變成運動前景時,被遮擋的背景顯露區被快速恢復。劉鑫,劉輝,強振平,等...

matlab 混合高斯背景建模的實現

clc clear 混合高斯背景建模 引數 gauss n 3 每個畫素點高斯背景模型數量 a 0.005 學習速率 alpha vt 2.5 2 方差閾值 2.5 2.5倍的方差varthreshold bgr 0.7 背景比率 backgroundratio w0 0.05 初始權值 weigh...