0

2D サーフェス (キャンバスとしましょう) に描かれた不規則な形の複雑な形状を提供します。そのキャンバス上のポイントも座標形式で提供されます (例: マウス クリックの座標)。

ポイントがオブジェクトの内側、エッジ、または外側にあるかどうかを判断する方法。

簡単にするために、エッジの幅を 1 ピクセル (ポイント) とします。

質問を容易にし、複雑さのレベルを示唆するために、下の画像に示すような形状を考えてみましょう。

ここに画像の説明を入力

要約すると、次のようになります。

  1. 指定された座標の点は形状内にあるか?
  2. 端っこですか?
  3. それとも形の外側ですか?
4

4 に答える 4

3

考えられる戦略の 1 つ:

  1. 外装を赤などの色に塗りつぶします。
  2. 赤のピクセルに接する黒のピクセルは、外部境界ピクセルです。
  3. 白いピクセルに接する黒いピクセルは、内部境界ピクセルです。
  4. 他のすべての黒いピクセルは、オブジェクトの内部にあります。

ポイント 2 ~ 4 は、画像の 1 回のスキャンで同時に評価できます。

これを非常に高速に実行したい場合は、OpenGL と評価フラグメント シェーダーを使用できます。しかし、それはもう少し複雑です。

于 2013-06-30T10:05:04.307 に答える
0

私は試していませんが、次の方法で疑似エッジ検出を試みます。

filter=[0 -1 0 ; -1 4 -1 ; 0 -1 0];
newImage=conv2(yourImage,filter);

外側エッジと内側エッジのみ (または主に) 保持することを想定しています。その後、yourImage-newImage を実行すると、エッジではないオブジェクトの内側のピクセルが取得されます。

解決策をさらに進めるために、いくつかの作業を行うことができると思います。

于 2013-06-30T11:59:19.303 に答える