2016-06-14 10 views
0

私の質問は最後の段落です。OpenCVで背景差分を調整する

私はOpenCVのバックグラウンド減算器の1つを人間の手を検出する手段として使用しようとしています。次のようにこれを行うにしようとするコードは次のとおりです。あなたのよう The left image is the mask calculated by the MOG2 algorithm :私が最初に私はこれをもって迎えられた私自身のテスト映像上のプログラム(一番右のウィンドウの名前を無視する)を走った

cv::Ptr<cv::BackgroundSubtractor> pMOG2 = cv::createBackgroundSubtractorMOG2(); 
cv::Mat fgMaskMOG2; 
pMOG2->apply(input, fgMaskMOG2, -1); 
cv::namedWindow("FG Mask MOG 2"); 
cv::imshow("FG Mask MOG 2", fgMaskMOG2); 

私のビデオの背景が完全に静止していることを考えれば、動きのある手のためにマスクが検出されないのを見ることができます(マスクに一度に1つまたは2つの白いピクセルが現れることがあります)。だから私は、トラフィックを動かしていた多くの例が使用していたような別のビデオを使ってみました。 Attempt at traffic background subtraction

動きのある車の上では、それは少し拾い上げることがわかります。私はこれらのビデオのために、applyメソッドの "学習閾値"を0と1の間の多くの値に設定しようとしましたが、上記の結果からはあまり変化がありませんでした。

私は背景差分を設定することに関して何かを見逃してしまったのですか、またはビデオは特に対処するのが難しい例ですか?バックグラウンド減算の設定を調整して、どこに設定してもよいでしょうか?私は両方のビデオでカメラが静止しているという事実を繰り返します。

答えて

-1

MOG2バックグラウンド減算器の代わりにMOG減算器を使用してみてください。

ほとんどの回MOG減算器が便利なので、しかし、最悪のことは、MOG減算器がbgsegmパッケージに移行したことです。それは貢献パッケージです。これは、OpenCV git hubページ自体で利用可能です。私はこの作業を取得したいな限り

https://github.com/Itseez/opencv_contrib

+0

、これは私の質問(複数可)を答えていません。さらに、[this](https://www.youtube.com/watch?v=T-L9FoH3D9w)などのリソースを見ると、MOG2は非常に良いと思われます。 – ZoSal

関連する問題