8c46a6ca9b
Causa principale: erode di (2*spread_radius+1) sulla maschera warpata toglieva troppo bordo. Per spread_radius=8 → kernel 17x17 = -8px da ogni lato. L'edge map applicata sopra mostrava i bordi spostati di ~8px verso l'interno del pezzo, creando apparente "traslazione fissa". Soluzione: erode 3x3 solo per rimuovere ~1px di bordo nero residuo da warpAffine borderValue=0 (artefatto di padding). Bordi del pezzo ora visualizzati nelle posizioni corrette. Bonus fix: cx_t calcolato come w/2 invece di (w-1)/2, coerente con center=diag/2.0 usato in training (era 0.5px di shift residuo per template di lato pari). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>