2011-01-21 36 views
2

私はオブジェクトの動きを追跡したいので、画像のシーケンスのシルエットが必要です。 誰でも知っている、どのようにこれを行うには? シルエットマスクは、モーションが発生する0以外のピクセルを持つバイナリイメージですopenCVを使って画像のシルエットを見つける

答えて

5

背景差分のサブタイトルを使用できます。それを行うには2つの方法があります。

  1. 現在のフレームから前のフレームを減算します。変更されていない両方のフレームのピクセルのみがゼロになります。 cvSub,cvAbsDiffを参照してください。
  2. ビデオフレームの平均実行時間はです。を維持してください。 OpenCVドキュメントのMotion Analysis and Object Trackingセクションの関数cvRunningAvgを参照してください。新しいフレームごとに、現在のフレームから移動平均を減算します。完了したら、現在のフレームで移動平均を更新します。

上記の方法のいずれかを使用した後、cvThresholdまたはcvAdaptiveThresholdを使用して、結果の差異イメージをセグメント化することができます。これにより、バイナリイメージが得られます。理想的にはイメージが静的であった場合は0、モーションが存在する場合は1または255です。

あなたの質問には言及していませんが、次にバイナリイメージの輪郭を計算することができます。そのためにcvFindContoursがあります。

2

これをご覧ください:Tracking colored objects in OpenCV

+0

nice link !!ありがとう! –

+1

+1このような教育ブログの著者であるため。 – karlphillip

+0

ハハ!どうもありがとう! –

関連する問題