// returns similarity (not diff) static float rgbImageSimilarity_sameSize(RGBImage a, RGBImage b, float similarity) { int w = a.w(), h = a.h(); if (aw != b.w() || ah != b.h()) fail("not same size"); float maxError = 1f-similarity; float diff = 0; for (int y = 0; y < h; y++) for (int x = 0; x < w; x++) { diff += rgbDiff( a.getInt(x, y), b.getInt(x, y)); if (diff > maxError) ret similarity-0.001f; } ret 1f-diff; }