この関数CvBGStatModel()がどのように機能するのか疑問に思っていました。これに使用されるアルゴリズムとは何か、平均およびフレーム差分アルゴリズムと比較してどのように優れた結果が得られるかを言いたいと思います。
前もって感謝します。
この関数CvBGStatModel()がどのように機能するのか疑問に思っていました。これに使用されるアルゴリズムとは何か、平均およびフレーム差分アルゴリズムと比較してどのように優れた結果が得られるかを言いたいと思います。
前もって感謝します。
CvBGStatModel() は関数ではなくクラスです。たとえば、このクラスは次のように作成できます。
IplImage* temp = NULL;
temp = cvLoadImage( "temp.jpg" );
CvBGStatModel* background_model = cvCreateGaussianBGModel(temp);
バックグラウンド/フォアグラウンド モデルを更新するには、関数を呼び出す必要があります (サンプルを参照)。
cvUpdateBGStatModel( temp, background_model );
「平均およびフレーム差分アルゴリズムと比較して、どのように優れた結果が得られるか」
ピクセル情報を、そのピクセルをより適切に表すガウス分布の混合物として保存するためです。これは、数フレームの間に値を変更するピクセルは、それをより適切に表すガウス分布が背景を考慮している限り、前景とは見なされないことを意味します。ガウスは重み付けされています。ガウス分布がバックグラウンドと見なされる時間が長いほど、重みが大きくなります。フレーム差分アルゴリズムは、フレーム間の差分のみを考慮しますが、これらの差分の一貫性や信頼性は考慮しません。