2017-11-12 6 views
0

私はボタンの中心の座標(約)を見つける必要があるスクリーンのスクリーンショットを持っています。スクリーンショットとサンプルボタンは*.png形式です。私は、このシグネチャを持つメソッドを想定しています:サブ画像座標の取得方法は?

public Coordinate getBtnCoordinate(BufferedImage src, BufferedImage dst) { 
    ... 
} 

@Data 
class Coordinate { 
    private int x; 
    private int y; 
} 

将来的には、これはこのように使用されます。

Coordinate сoordinate = getBtnCoordinates(...); 
Robot robot = new Robot(); 
robot.mouseMove(сoordinate.getX(), сoordinate. getY()); 
robot.mousePress(InputEvent.BUTTON1_MASK); 

しかしgetBtnCoordinatesを実装するために私の試みは、ほぼ週に何にもつながりません

+1

何を試しましたか?これはコード作成サービスではありません。 – marstran

+0

@marstran私にはたくさんの選択肢があり、私は何を入れるべきか分かりません。彼らはすべて動作しません。まだ普及していれば、スパムだけが発生します。 – Pavel

答えて

0

実装は、検索されたボタンがサンプル画像のいずれかと正確に一致するかどうか、または「類似の」ボタンを見つける必要があるかどうかによって異なります(このメソッドを実装してください。おそらくもっと難しいでしょう。

正確に一致するものを検索すると、スクリーンショットをスキャンしたり、ボタンの特定の位置にあるピクセルカラーに一致するピクセルをスキャンしたりすることができます。一致するピクセルを見つけたら、あまりにも多くの不一致があるかボタン全体が一致するまで他のピクセルを比較してください。

興味深い領域に単一色の背景がある場合は、セグメンテーションを使用することができます。つまり、最初にコンテンツのある矩形領域を見つけて、これらの領域のみをサンプルボタンと比較します。

ボタンのサイズが異なる場合は、部分一致を行うためにボタン自体をコンテンツと上下左右の境界線に分割することをお勧めします。

マッチを実際にあいまいにする必要がある場合は、もっと高度な技術が必要な場合があります。マシン学習を使用してサンプルボタンのモデルをトレーニングします。

ケースの典型的なスクリーンショットやボタンは表示されませんが、この問題の具体的なアドバイスは難しいです。

関連する問題