私はイメージ内の長方形を検出するための最良の方法を考えようとしています。イメージ内の長方形を検出する最も簡単で正しい*方法は何ですか?
最初は、行にはHough transformを使用し、同じ2行で2本の線が交差する2本の線の組み合わせを選択することが考えられますが、これでは十分ではありません。
ハフ変換と一緒にcorner detectorを使用しますか?
私はイメージ内の長方形を検出するための最良の方法を考えようとしています。イメージ内の長方形を検出する最も簡単で正しい*方法は何ですか?
最初は、行にはHough transformを使用し、同じ2行で2本の線が交差する2本の線の組み合わせを選択することが考えられますが、これでは十分ではありません。
ハフ変換と一緒にcorner detectorを使用しますか?
OpenCVディストリビューションの/samples/c/squares.cを確認してください。この例は正方形の検出器を提供していますが、それはかなり良いスタートでなければなりません。
私の回答hereも適用されます。
現在のところ、イメージ内の長方形を検出するための簡単で堅牢な方法は存在しないと思います。正確には四角形ではなく、おおよその部分的な閉塞、照明の変化などの多くの問題に対処する必要があります。
1つの可能な方向は、画像のセグメンテーションを行い、長方形になるセグメンテーションアルゴリズムは信頼できないため、異なるパラメータで複数回実行できます。
もう1つの方法は、画像に矩形をパラメトリックにフィットさせ、輪郭に沿った画像勾配の大きさを最大にすることです。
パラメトリックアプローチで作業する場合は、矩形をパラメータ化する簡単な方法は、8つのパラメータである4つのコーナーの位置によって行われますが、パラメータを少なくする必要がある他の表現がいくつかあります。
シンプルな幾何学的形状の場合、ハフ変換はこれらの点に答えます。 –
実際に私は四角形を検出するためにいくつかの作業を行い、これらの問題に遭遇しました。明らかに、合成画像で作業する場合、Houghメソッドは素晴らしい方法で動作しますが、「野生の中で」四角形を探したい場合は、まったく別の話です。 –
便利なHoughの拡張があります。
http://en.wikipedia.org/wiki/Generalised_Hough_transform
十分でないというと、効率的ではありませんか?これは本当にあなたのアプリケーションに依存します。リアルタイムで高精細ビデオのためにこれをやっていない限り、ハフ変換は十分に良いかもしれません。 – misha