輪郭検出とハフ変換というさまざまなアプローチを使用して、グレースケール イメージ内の白い四角形を検出しようとしています。残念ながら、私が処理している画像にはいくつかの制限があります。
- 画像には多くの機能があり、長方形だけが機能ではありません
- 長方形は他のフィーチャにマージできます (たとえば、長方形のエッジの 1 つを長い直線と重ねることができます)。
- 四角形には、他の機能 (文字、数字、または四角形内のロゴなど) を含めることができます。
- 長方形のように見える機能がいくつかあります (たとえば、文字「D」は、右上と右下に小さな円弧がある長方形のように見えます。別の例は、平行四辺形ではなく台形です)。
- 長方形は、時計回りと反時計回りの両方で 0 から 15 度まで回転できます。
- 異なる照明条件 (例: 1 ピクセルのギャップ) で線が複数の線に分割される可能性があるため、線をフィルタリングするための最小線の長さは小さくする必要があります (例: ハフ変換)。
- 最小線の長さが小さい値に設定されている場合、同じ線の重複した線が異なる向きで表示されることがよくあります (つまり、複数の線を結合する必要があります)。
輪郭アプローチでは、一部の画像の輪郭が壊れています。さらに、画像には四角形などの機能 (文字「D」など) を含めることができます。これが良いアプローチかどうかはわかりません。
次の投稿のように、ハフ変換を使用して長方形を検出することを提案する多くの記事/フォーラムを見てきました。残念ながら、行の長さの最小値を小さく設定する必要があり、行が重複しています。上記のポイントを処理する方法がわかりません (たとえば、すべての重複する線を結合し、各エッジに対して 1 つの線のみを選択し、ほとんどの部分が線であるが「D」のような小さな円弧で特徴を区別する方法、およびどのように長い直線とマージされた 1 つのエッジを持つ正方形を分離するなど)。
どんな提案も大歓迎です!
編集:いくつかの写真を追加
キャラクター D
ロゴ付きの長方形とエッジが長い直線で結合されている
台形 (上に影があり、下に台形を形成)