#!/usr/bin/env python3
import sys,pathlib,json
from PIL import Image,ImageChops
import numpy as np
before,after,out=sys.argv[1:];p=pathlib.Path(out);p.mkdir(exist_ok=True)
a=np.asarray(Image.open(before).convert('RGB')).astype(np.int16);b=np.asarray(Image.open(after).convert('RGB')).astype(np.int16)
assert a.shape==b.shape
raw=np.abs(a-b);mask0=raw.max(2)>0;maskT=raw.max(2)>8
Image.fromarray(np.minimum(raw*32,255).astype('uint8')).save(p/'Diff0-amplified32.png')
base=(a*.25+180).clip(0,255).astype('uint8');base[maskT]=[255,0,160];Image.fromarray(base).save(p/'DiffT8.png')
metrics={'threshold':8,'amplification':32,'size':[a.shape[1],a.shape[0]],'changedPixels0':int(mask0.sum()),'changedPixelsT':int(maskT.sum()),'percent0':float(mask0.mean()*100),'percentT':float(maskT.mean()*100)}
(p/'metrics.json').write_text(json.dumps(metrics,indent=2));print(metrics)
