You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix norm inconsistencies across all image rendering paths
1. Copy norm in _prepare_cmap_norm so each CmapParams gets an
independent instance — fixes shared-norm bug when cmap is a list
and cross-element state sharing in chained render_images calls.
2. Move per-channel auto-ranging norm copy outside if/else so it
covers both list and single-cmap branches.
3. Global auto-range for float RGB data outside [0,1]: instead of
clipping (which destroys contrast), scale using global min/max
across all RGB channels to preserve color balance.
4. Explicit np.clip in Path 2A-default after stacking normalized
channels, instead of relying on matplotlib's silent clipping.
5. Remove dead percentiles_for_norm field from ImageRenderParams
and the quantiles_for_norm deprecation alias.
6. Remove unreachable ch_norm-is-not-None guard since
_prepare_cmap_norm always creates a Normalize.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0 commit comments