2

ここに画像の説明を入力

左のようなイメージがあります。右側のような画像を取得するために、カバーされた領域またはポリゴンの円弧点を取得したい。すべての行の終点値を取得しました。

どうすればそれを行うことができますか (すべての対象エリアを取得します)? アルゴリズムやアイデアはありますか?

4

3 に答える 3

1

これを行う最も簡単な方法は、再帰的な塗りつぶし手法を使用することです。

最初に白黒の画像があると仮定すると、1 つの領域に色のピクセルをドロップします。そのピクセルの上下左右の領域を再帰的に塗りつぶします。これらの各ピクセルが戻ってきたら (周囲のすべてのピクセルが壁に色付けされているか黒であるため)、戻ってきます。

各 x、y 座標に対してこれを繰り返し実行し、前の実行で既に色付けされている場合はスキップできます。これを行う際に、必要に応じて色を反復処理することもできます。

于 2011-12-06T08:12:33.523 に答える
0

2 番目のアプローチとして、切れ目のない線のリストがある場合は、グラフ アプローチを試すことができます。各線をグラフのエッジと見なし、各交点をノードと見なして、グラフの最小サイクルを見つけます。これらはあなたの部屋です。

于 2011-12-06T08:46:13.337 に答える
0

入力画像の限られた解像度で見る限り、これはバイナリ画像セグメンテーションの典型的なケースです。画像を反転し、侵食して線の穴を埋めてから、画像のセグメンテーションを行います。このための単純なアルゴリズムは、画像の前方スキャンを実行し、各ピクセルにその後方 (真左または上方向) の白い隣人の領域値を割り当てるか、または黒い後方隣人しかない場合は新しい領域値を割り当てて、領域を結合することです。リージョン番号が異なるネイバーがある場合。

于 2011-12-06T08:34:14.447 に答える