// works in similarity static float bwImageSectionsSimilarity2(BWImage big, BWImage pat, int x, int y, float similarity) { int wp = pat.getWidth(), hp = pat.getHeight(); int w = big.getWidth(), h = big.getHeight(); float maxError = (1f-similarity)*wp*hp; float diff = 0; for (int yy = 0; yy < hp; yy++) for (int xx = 0; xx < wp; xx++) { diff += Math.abs(big.getPixel(x+xx, y+yy)-pat.getPixel(xx, yy)); if (diff > maxError) ret similarity-0.001f; } ret 1f-diff/(wp*hp); } static float bwImageSectionsSimilarity2(IBWImage big, BWImage pat, int x, int y, float similarity) { int wp = pat.getWidth(), hp = pat.getHeight(); int w = big.getWidth(), h = big.getHeight(); float maxError = (1f-similarity)*wp*hp; float diff = 0; for (int yy = 0; yy < hp; yy++) for (int xx = 0; xx < wp; xx++) { diff += Math.abs(big.getFloatPixel(x+xx, y+yy)-pat.getPixel(xx, yy)); if (diff > maxError) ret similarity-0.001f; } ret 1f-diff/(wp*hp); }