3

私は現在、ビデオでインク滴を見つけ、体積推定、速度、球状になる前に移動した距離などの測定を実行する必要があるプロジェクトを行っています。

まず、このプロジェクトに取り組んでいる私が正しい軌道に乗っているかどうかを知りたいです。現時点で私は持っています:

1.) 元の画像をグレースケールに変換

2.) ガウスぼかしを適用してからキャニー エッジ検出を適用 (画像はここをクリック)

3.)findNonZero()次に、行のブロックの合計を計算し、白ピクセルの濃度が最も高いブロックを使用して白ピクセルを特定し、その上にあるすべての行を切り取ります)。これにより、イメージ内のプリント ヘッドが削除されるため、ROI はその下の液滴のみになります。

4.) を使用しfindContoursて輪郭を見つけます。(画像はこちら

上記の4つのステップは、これまでに行ったことです。次の手順は、次に行うべきことの下にありますか?

  • トリミング後、輪郭を見つける前にバイナリ イメージを膨張させて、輪郭が閉じて開いていないことを確認しますか?
  • たぶん、非常にオープンなものを無視しますか?(実際にこれを行う方法に関するヒントはありますか?)
  • floodFill()すべての閉じた円
  • を使用して各輪郭の領域を見つけますcontourArea()(このステップの後に、形状、ピクセルと体積の比率などのいくつかの仮定を使用して、ドロップの体積を推定できますか?)
  • 各輪郭の中心を見つけて配列に保存し、次のフレームの同じ滴の中心と比較できるようにします。液滴の中心から移動した距離とビデオのフレームレートがわかったら、速度を推定できるはずです。

また、ドロップに ID を与える方法がわからないので、適切に追跡していることを確認し、新しいドロップがいつ ROI に入ったかを知ることができます。

どんな助けでも大歓迎です、ありがとう。

4

1 に答える 1

2

あなたのアイデアは良いもので、あなたを満足させるものに簡単に拡張できると思います.

明確にするために、画像から赤いROIを「redROI」と呼びます。

  1. redROI 内のすべての液滴を見つけます。位置と ID を覚えておいてください。
  2. 前のステップからの液滴の位置ごとに、黄色の長方形に似た ROI を作成します。 各長方形について、その中に液滴があるかどうかを確認します。
    はいの場合 - おそらくそれは前のフレームからのドロップレットなので、探しているものです。
    いいえの場合は、もう少し大きな長方形で再度検索を試みるか、この ROI のダークセット ポイントがあなたの液滴であると仮定します。ROI が redROI の下部に近い場合は、おそらく液滴がなくなっています。忘れてください。

いくつかの点に注意してください:
-長方形のサイズは、液滴が移動する速度と、垂直または斜めにのみ移動できるかどうかによって異なります (風は移動方向を変更できます)。
-液滴を検索する前に、すべての長方形がばらばらであるかどうかを確認します (共通の領域がない -> (Rect1 & Rect2).area() == 0 の長方形の各ペア)。
- ROI で液滴を検索する前に、この ROI が redROI 内にあることを確認してください。したがって、次のコードを使用してください。roi = roi & redROI;
すべての古い液滴の新しい位置を見つけた後、redROI 全体で液滴を検索して、新しい液滴を見逃さないようにします。

このアイデアの一部が理解できない場合はお知らせください。よりよく説明できるように努めます。

たぶん、非常にオープンなものを無視しますか?(実際にこれを行う方法に関するヒントはありますか?)

よくわからないので、調べてみてください。CV_RETR_LISTの 3 番目のパラメータとしてを使用し、 findContours( によって) 返された輪郭から最初と最後の点の間の距離を確認してみてくださいfindContours- 距離が輪郭よりも大きい場合は開いており、そうでない場合は閉じています。

floodFill() 閉じた円ごと

パラメータを使用drawContoursして設定するだけで、よりシンプルで高速なソリューションになります。 thickness-1


編集:
オプティカル フローを使用することもできます - それは既に openCV で実装されています。ここでは、それに関する素晴らしいチュートリアルを読むことができます: http://robotics.stanford.edu/~dstavens/cs223b/ (.pdf ファイルから開始)

于 2013-04-13T23:12:03.187 に答える