私の質問は最後の段落です。OpenCVで背景差分を調整する
私はOpenCVのバックグラウンド減算器の1つを人間の手を検出する手段として使用しようとしています。次のようにこれを行うにしようとするコードは次のとおりです。あなたのよう :私が最初に私はこれをもって迎えられた私自身のテスト映像上のプログラム(一番右のウィンドウの名前を無視する)を走った
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つの白いピクセルが現れることがあります)。だから私は、トラフィックを動かしていた多くの例が使用していたような別のビデオを使ってみました。
動きのある車の上では、それは少し拾い上げることがわかります。私はこれらのビデオのために、apply
メソッドの "学習閾値"を0と1の間の多くの値に設定しようとしましたが、上記の結果からはあまり変化がありませんでした。
私は背景差分を設定することに関して何かを見逃してしまったのですか、またはビデオは特に対処するのが難しい例ですか?バックグラウンド減算の設定を調整して、どこに設定してもよいでしょうか?私は両方のビデオでカメラが静止しているという事実を繰り返します。
、これは私の質問(複数可)を答えていません。さらに、[this](https://www.youtube.com/watch?v=T-L9FoH3D9w)などのリソースを見ると、MOG2は非常に良いと思われます。 – ZoSal