2

マッチ 3 ゲームのスクリーンショット (例: http://www.gameplay3.com/images/games/jewel-quest-ii-01S.jpg ) がある場合、グリッドの境界ボックスを見つける正しい方法は何でしょうか (タイル付きのテーブル)?ボードは完全な長方形である必要はありませんが (スクリーンショットでわかるように)、各セルは完全に正方形です。

いくつかのゲームを試してみたところ、グリッド内のタイルを強化するために実行できるゲームごとの画像変換がいくつかあることがわかりました (たとえば、このゲームでは、HSV カラー スペースから V チャネルを取り出すだけで十分です)。次に、タイルが重なるように拡大し、画像の最大の輪郭を見つけて、そこからバインドされたボックスを取得します。

上記のアプローチの問題は、すべてのゲーム (または同じゲーム内のレベル) で、タイルを取得するために異なる変換が必要になる場合があることです。問題は、グリッド内のタイルまたはグリッドの線のいずれかを強化する標準的な方法はありますか (私はハフ変換で線を見つけようとしましたが、グリッドは目に見えますが、ハフはそれを見つけられません) ?

また、デスクトップのスクリーンショットを撮る代わりに、電話のカメラを使用してスクリーンショットを取得した場合はどうなりますか? 私の経験では、キャプチャされた画像の色はあまり定義されておらず (照明によって異なります)、電話を画面の正面に正確に保持する方法がないため、少し歪む可能性もあります。

4

1 に答える 1

2

スクリーンショットには次のアプローチを使用します。

  1. たとえば、エッジ検出器のようなキャニーを使用して、画像のコーナーを見つけます。
  2. ハフライン変換を実行します。これは、エッジ画像で非常にうまく機能するはずです。
  3. タイルのサイズに関する情報がある場合は、グリッドのある種の空間モデルを使用して誤検知ラインを排除できます(たとえば、画像のx /y軸に対する角度やタイルの距離/角度が小さいラインのみ)国境。
  4. 線の下/隣のキャニーによって検出されたエッジを探すことにより、検出されたハフ線の下のタイルの境界を識別します。

ハフ変換のどの実装を使用しましたか?画像をどのように前処理しましたか?

別のアプローチは、ある種の機械学習アプローチを使用することです。OpenCVで作業しているので、Haarのような特徴検出器を使用できます。Haarのような機能を使用した顔検出の例は次のとおりです。

OpenCVHaar顔検出器の例

別の機械学習アプローチは、サポートベクターマシン(SVM)と組み合わせたHistogram of Oriented Gradients(Hog)アプローチに従うことです。例はここにあります:

HOGの例

HoG検出に関する一般的な情報は、次の場所にあります。

豚の検出

于 2011-09-23T18:26:54.883 に答える