static FoundImg rgbImageSearch_best(RGBImage big, RGBImage pat, float similarity) { new Best best; int wp = pat.getWidth(), hp = pat.getHeight(); int w = big.getWidth(), h = big.getHeight(); float maxError = (1f-similarity)*wp*hp; bigloop: for (int y = 0; y < h-hp; y++) for (int x = 0; x < w-wp; x++) { float diff = rgbImageSectionsSimilarity(big, pat, x, y, maxError); if (diff <= maxError && best.isNewBest(-diff)) { maxError = diff; Rect r = new Rect(x, y, wp, hp); best.put(r, -diff); ping(); if (diff == 0) break bigloop; } } Rect r = best.get(); ret r == null ? null : new FoundImg(r, 1-(-(float) best.bestScore())/(wp*hp)); }