2016-04-27 7 views
1

このタスクは、安定した背景でオブジェクトを追跡することに由来します。私はそれがだ、いくつかのフレーム上で(それに接続されているコードをせずにおもちゃの境界矩形を取得する必要がバイナリイメージでのオブジェクト検出

1

2

:これまでのところ私は、背景を削除して、このようなバイナリマスクを得ることができましたかなり厚い)。簡単に聞こえますが、私はそれをする良い方法を考えることができません。

私は切り取ったおもちゃのテンプレートと相互相関を試みました。本当にいいとは言えませんでしたが、大きさを変えるには長方形が必要でした。そしてコードはいくらか混乱を加えました。

meanShift()

も理由コードと時折noiceの良い結果を示しませんでした。今の

私はいくつかの調整とfindContours()を使用しますが、それはまだ大丈夫、画像のように思えるものにいくつかの奇妙な境界を生成します。

私は、もっとシンプルで効果的なソリューションが必要であると考え続けています。

答えて

0

付属のコードを除去するために、私は単に開口部に続いて閉鎖を行うだろう。あなたが最初にクローズポイントを再接続するのと同じように、孤立ポイントを消してコードを切断します。

次に、あなたは、対応するMATLAB関数でバウンディングボックスを計算することができます。私たちは、おもちゃとコードの位置が常にあると仮定できる場合

+0

閉鎖/開放操作が完了すると、望ましくないブロブが残ることがあります。等高線プロパティでそれらを「フィルタリング」することができます(たとえば、周囲または表面の高さが十分でない場合はブロブを無視できます) – Pierre

0

あなたの第二の画像によると、クローズ処理は(そう、(理由はおもちゃの体の細い境界線の)おもちゃの大部分を削除することがありあなたは最初に凸包を使用し、次に「画像の各列」で別々に、(すべての部分のおもちゃの幅がコードやノイズの多い場所よりも大きいという事実に基づいて)厚いオブジェクトを探します。各行では、しきい値を超える長さを持つすべての水平線が保持され、それ以外の場合は削除されます。この方法では、おもちゃの凸包を再構成し、今すぐ簡単に四角形に合わせることができます。

関連する問題