// returns diff (not similarity), not divided by pixel number (same for maxError) static float rgbImageSectionsSimilarity(RGBImage big, RGBImage pat, int x, int y, float maxError) { int wp = pat.getWidth(), hp = pat.getHeight(); int w = big.getWidth(), h = big.getHeight(); float diff = 0; for (int yy = 0; yy < hp; yy++) for (int xx = 0; xx < wp; xx++) { diff += rgbDiff(big.getInt(x+xx, y+yy), pat.getInt(xx, yy)); if (diff > maxError) ret maxError+1; } ret diff; }