#!/usr/bin/env python3
"""VORHER gegen NACHHER, Bildpunkt fuer Bildpunkt, in der Leiste.

Das ist die eigentliche Abnahme: die Umstellung auf fUi darf das Bild
NICHT veraendern -- ausser dort, wo sie es absichtlich verbessert
(echter Ring statt zweimal fuellen).
"""
import sys, collections
sys.path.insert(0,'/tmp/fp')
from xwdmess import leser

a, b, CH = sys.argv[1], sys.argv[2], int(sys.argv[3]) if len(sys.argv)>3 else 44
wa,ha,pa = leser(a); wb,hb,pb = leser(b)
assert (wa,ha)==(wb,hb), "verschiedene Groesse"
gleich = 0; anders = 0
diffs = collections.Counter()
maxd = 0
for y in range(0, min(CH,ha)):
    for x in range(wa):
        ca, cb = pa(x,y), pb(x,y)
        if ca == cb: gleich += 1
        else:
            anders += 1
            diffs[(ca,cb)] += 1
            maxd = max(maxd, max(abs(ca[i]-cb[i]) for i in range(3)))
ges = gleich+anders
print("LEISTE y=0..%d, %d Bildpunkte" % (CH, ges))
print("  gleich : %7d  (%.3f %%)" % (gleich, 100.0*gleich/ges))
print("  anders : %7d  (%.3f %%)   groesste Kanalabweichung %d"
      % (anders, 100.0*anders/ges, maxd))
if anders:
    print("  die haeufigsten Unterschiede (vorher -> nachher):")
    for (ca,cb),n in diffs.most_common(8):
        print("    RGB%-16s -> RGB%-16s  %6d x" % (str(ca),str(cb),n))
