2017-01-18 12 views
1

OpenCV/Pythonを使用して水のエッジを検出しようとしていますが、結果はかなり不正確であり、堅牢性はありません。 これは私がこれまでに達成したものです: Original Image, output imageOpenCVとPythonを使用してウォーターエッジを正確に検索

Canny Edge detection

私は現在、いくつかの変数(ガウスぼかしのレベル、キャニーエッジ検出のために使用されるシグマ、および最大偏差を設定されてやっています中央レベルのピクセル強度が測定され、下側境界および上側境界を形成するために使用される)「自動」キャニーエッジ検出を実行し、次に、左下隅から上方に移動して、最初の「白」ピクセル。これは、フレームの全長のx間隔で5回行われます。

ポイントの平均y値が計算されます。次に、各点をテストして偏差が平均ピクセルから大きくずれているかどうかを調べ、偏差限界を早めに設定します。残りの点は、青い線として画像に描画されます。描かれたピクセルの平均値は各フレームで記録される。

30フレーム後、平均値の平均値が計算され、赤色の線として描画され、次にそれが「実際の」水の高さとみなされます。

これを行うにはもっと良い方法がありますか?何が水の端をより目立たせるだろうか?この方法は、私が記録したほとんどの映像には効果がありますが、結果は悪いです。

ありがとうございます。

答えて

2

私は同様の問題に取り組んでいると私はこれらのアドバイスは、何らかの方法であなたを助けることを願って:

  • は、検索エリアを制限するようにしてください:あなたは、水位があるべき場所に仮定を行うことができますか?水位を正しく検出したことも考慮してください。次のフレームで水位が絶え間なく減少/増加すると想定するのは安全でしょうか?それはゆっくりと変わるだろうか?水位が存在すると想定するのが安全な領域のみを考慮に入れて画像をトリミングします。
  • 変更色空間:あなたは明るさが色度から分離しているためにHSVのような他の色空間で動作するように試みることができる
  • ハフ線検出を変換:水平方向の特定を検索するには、このアルゴリズムを使用してみてください画像内の線、または他の形状であってもよい。
  • 画像ゆがみ:必要に応じて、曲線を修正するために画像を修正したり、逆投影マッピング(IPM)でパースペクティブをキャンセルしてください。

エッジ検出アルゴリズムを変更することも考えられます。

+0

同様の状況ですが、別の分野では - 私はまた、メディアンフィルタを使用して「ホットピクセル」歪みを除去します。 –

関連する問題