Sikuli を使用するには、次のものが必要です
- 他のイメージが検索されるベース イメージ。
- 他の画像内で検索される画像。
画像 1 がローカル リソースの画像である場合、画像へのパスと検索されるこの画像のリージョンを使用して org.sikuli.Finder インスタンスを作成できます。例 (Java レベル):
finder = new Finder("path/to/image", new Region(0, 0, <imgwidth>, <imgheight>));
画像 1 がストリームの場合、何らかの方法で BufferedImage を作成する必要があります (これを行う最善の方法はわかりません)。次に、java.awt.Rectangle と org.sikuli.Region を使用して、この BufferedImage から org.sikuli.ScreenImage を作成できます。
finder = new Finder(new ScreenImage(new Rectangle(0,0,<imgwidth>,<imgheight>), bufferedImage), new Region(0,0,<imgwidth>,<imgheight>))
画像 1 からファインダーを作成した後、この画像内で画像 2 を検索できます。
繰り返しますが、2 つの可能性があります。2 番目のイメージがローカル リソース イメージである場合、ファイルの場所を指定して org.sikuli.Pattern オブジェクトを作成できます。
pattern = new Pattern("path/to/image.png");
それ以外の場合、これがストリームの場合は、何らかの方法でストリームから BufferedImage を作成する必要があります。次に、この画像からパターンを作成できます。
pattern = new Pattnern(bufferedImage);
最後のステップとして、ファインダーを実行してパターンを検索できます。
finder.find(pattern);
ファインダーが何かを見つけたかどうかは、次の方法で確認できます。
finder.hasNext();
そして、次の方法ですべての調査結果を反復できるはずです。
for (Match m : finder):
//do something with the match
あなたの質問はすでに数週間前のものですが、お役に立てれば幸いです。