2011-11-14 7 views
1

私はOpenCVを使用してユーザ補助エッジ検出を実装しようとしています。ベクトルを画像内のエッジと関連付ける

多角形を見つける必要のある画像があるとします。議論のために、画像内で矩形のテーブルの上部を見つける必要があるとしましょう。ユーザーがテーブルの四隅をクリックすると、物を狭めるのに役立ちます。これら4つの点を結ぶことで、ポリゴンまたは4つのベクトルが得られます。 しかし、これらのコーナーをクリックすると、ユーザーの正確さが低下します。だから私は、画像のエッジ情報を使って精度を上げたいと思っています。

私は、イメージの重要なエッジを判断するためにかなり高いしきい値を持つCannyエッジ検出器を使用しています。 (より正確には、私は縮小、ぼかし、グレースケールに変換してから、Cannyを実行します)。ベクトルが画像のエッジと整列するかどうかをどのように計算できますか?私が「アラインメント」を計算する方法があれば、私のオーバーオールアルゴリズムは、4つのエッジポイントの位置を乱して、ポリゴンとイメージのエッジの合計「アライメント」を計算し、最適を見つけるまで下がります。

この「調整」メトリックを定義して計算するには、どのような方法が良いですか?

答えて

0

FindContoursを使用してテーブルやその他の輪郭を検出したい場合があります。次に、ユーザー入力ポイントから輪郭を作成します。この後、輪郭を比較できる輪郭モーメントについて読むことができます。画像からのすべての輪郭をユーザーポイントから作成した輪郭と比較し、最も近いものを選択することができます。

+0

残念ながら、FindContoursは自分の画像ではあまり良い結果を得ていません。結果として生じる形状は、不規則な(すなわち、すばらしい矩形ではない)ことが多いので、ユーザ入力を使用して最良のものを選択するだけではそれをカットすることはできない。しかし、チップをありがとう。 – Niels

関連する問題