2

基本的に画像内のページの境界点を検出しようとする C++ の OpenCV コードに取り組んでいます。findCountours() 関数を使用して等高線を見つけ、その後、approxPolyDP() 関数を使用して四角形を見つけようとし、4 つの点のみを持つ四角形のみを考慮します。私のコードは、ほとんどが OpenCV サンプルの squares.cpp コードに基づいています。

それは機能し、4ポイントを返しました。そして私は幸せでした...しかし、この幸せは長続きしませんでした. :(すぐに、ポイントが返される順序がランダムに見えることに気付きました(画像ごとに異なります)。アルゴリズムが4つのポイントを特定の順序でのみ返すようにしたい(たとえば、左上、次に右上) 、次に右下、次に左下。

同じ固定順序でポイントを取得することは私のアプリケーションにとって重要であるため、私の質問は「これらのポイントが検出され、アルゴリズムによって返される順序を修正する方法はありますか」です (コードは正方形とほぼ同じです. cpp の OpenCV の例)。どんな助けでも本当に感謝します。そして言うまでもなく、TIA。:D

4

1 に答える 1