4

Javaで画像中の四角形を検出したいです。OpenCV で HoughLinesP メソッド (opencv Java バインディングに javaCV を使用) を使用して、線分を検出できます。しかし、四角形を検出する方法がわかりません。そのための別の方法またはハフ線を使用する方法はありますか? また、四角形の角が検出されたら、このクラスと同じように四角形を返すようにします - http://www.aforgenet.com/framework/docs/html/7039a71d-a87d-47ef-7907-ad873118e374.htm - openCV に同等のライブラリはありますか?

4

3 に答える 3

4

入力画像はどのように見えますか? ハフ変換で多くの線分が検出された場合は、RANSACを使用して多数の四角形仮説を生成し、それらの適合度を評価して最良の仮説を返す方法を見つけることができます。

1 つの仮説は、次のように生成できます。

  • 検出された線分セットから 4 つのランダムな線分を選択する
  • 選択した線分が置かれている線の交点を探して、四隅を見つけます
  • これらの 4 点によって定義される四角形の適合度を評価します

適合度は、仮想的な四角形の面積 (凸四角形の面積を計算するためのBretschneider の式を参照)、検出されたセット内の他の線分から四角形のエッジまでの距離、またはアプリケーションにより適したものである可能性があります。

これは単なるアイデアです。私はまだこのアプローチを試していません (しかし、似たようなものを実装する予定です)。これがうまくいくと思うか、またはうまくいかない理由を教えてください! :)

于 2012-10-27T11:46:59.937 に答える
2

あなたのアルゴリズムはこのようなものかもしれません

  1. 画像を処理してエッジを見つけます(キャニーフィルター)
  2. ハフ変換を適用して線を見つける
  3. 90度の角度で交差する線のペアを検出します(約)
于 2012-10-24T11:48:03.153 に答える
1

OpenCV ライブラリを使用する場合は、FindChessboardCorners関数を試してみてください。また、ここには良いチュートリアルがあります。

于 2012-10-24T11:46:00.517 に答える