0

私の宿題は、写真の中のコップ一杯の水/コークスの水位を検出できる非常に単純なアプリケーション(JavaまたはC#、両方を知っています)を作成することです(そこに線を引く必要があります)。どうやって始めたらいいのかわからない。私は一日中グーグルで検索しましたが、有用な結果は見つかりませんでした。液体のレベルを検出できる優れたアルゴリズムはありますか?

写真は次のように横から撮影されています。

ここに画像の説明を入力してください

(両方の行を検出するのも良いです)。それで、あなたは私が始める方法を手伝ってくれますか?egde検出(優れた基本的なアルゴリズムはありますか?)、または他の方法を使用しますか?

水、コークス、すべての液化物などを検出できれば最高です。

4

3 に答える 3

6

エッジ検出を行う必要があります。エッジができたら、ガラス内のレベルを見つけてください。Aforge.NETのようなツールキットを使用できます。次に、エッジを検出するコードは非常に単純です。次に例を示します。

Bitmap b = new Bitmap(Image.FromFile(@"C:\Temp\water.jpg"));
// create filter
Edges filter = new Edges();
// apply the filter
filter.ApplyInPlace(b);

pictureBox1.Image = b;

次のような画像が生成されます。

ここに画像の説明を入力してください

これで、グラスの中の水のポイントを見つけるのが少し簡単になるはずです。すべてのバックグラウンドノイズが除去されているため、キーオフするエッジの決定に集中できます。

于 2012-05-15T20:25:30.677 に答える
0

ここでハフ変換を確認してください

于 2012-05-15T20:00:03.087 に答える
0

問題のガラスの容量を取得するのに役立ちます。

ガラスが保持できる水量がわかれば、自分で作成した関数を使用して、画像に2本の線を引くことができます。ガラスのサイズに1本の線を、画像に重ね合わせた水位に1本の線をお勧めします。次に、これらの線とガラスの最大容量を使用して、2つの間の相関関係を形成し、中に含まれる液体のレベルを計算できます。ガラス。

教授は、課題を100%正しくすることにあまり関心がなく、自分のイニシアチブを使用して問題を解決する準備をすることに関心があることを忘れないでください。Google検索は常にあなたの問題を解決できるとは限りません。

于 2012-05-15T20:13:51.957 に答える