2011-07-06 4 views
0

アンドロイドアプリで作業していますが、一部の画像でエッジ検出を適用してビットマップを取得しました。 黒い背景のビットマップで、白い線がエッジとして表示されます。ビットマップ内の三角形を検出

の中心から外側に移動する最初の閉じた境界を特定し、それがの三角形であることを確認する必要があります。

どうすればよいですか?たとえコードサンプルでなくても方法論でさえも となるでしょう。

+2

入力画像の例を投稿できますか? –

答えて

2

これは変更されましたハフ変換、少しこの問題に最適化されています。
エッジ検出を適用し、エッジが白いピクセルであると仮定します。

  1. 境界を見つける。中央から外側に移動し、最初の白いピクセルを見つけます。必要なだけ多くの方向に繰り返します。
  2. を検索してください。隣り合っているピクセルを通る線(2ピクセルを取るか、または2ピクセルを超える線を通る式を見つけて)、その下にある白いピクセルの数を調べます。ラインの下にあるピクセルが多いほど、ラインが良いです。別のラインとの交差点を考慮し、交差点まで白いピクセルを数えます。
  3. 三角形を特定します。 boundaryが3つの良い線から構築されている場合、それは三角形です。

私はその助けを願っています。

+0

最も単純なのは、dziobasが示唆したようなHoughTransformでしょう。そのアルゴ@dziobasのために –

+0

ありがとう。私はそれがアンドロイドのためのopencvポートを使って試みることができると考えました。 – Bornfree