Releases: jcreinhold/intensity-normalization
Releases · jcreinhold/intensity-normalization
Release list
v4.0.0
v4.0.0 — clean-slate redesign
A ground-up redesign of the package: same algorithms (better tested), new interface.
- One CLI: eleven scripts become subcommands of
intensity-normalize, with unified single-image / batch semantics. - New Python API: individual methods are plain functions (
inorm.whitestripe(img, mask=mask)); population methods are fitted transforms (tx = inorm.nyul.fit(imgs); tx(new_img); tx.save("nyul.npz")). - Type-preserving: numpy in → numpy out, nibabel in → nibabel out (affine/header preserved, float64 kept float64).
- Array-level cores for every method: pure numpy, no nibabel, for use inside your own pipelines.
- Deterministic by default: all stochastic steps take
seed=(default 0); scikit-fuzzy replaced by an in-house fuzzy c-means. - Saved transform state moves from
.npyto stamped.npz(old files are not loadable — refit them). - Requires Python ≥ 3.12;
pymediosupport removed.
Migration guide: https://www.jcreinhold.com/intensity-normalization/migration/
Docs: https://www.jcreinhold.com/intensity-normalization/
3.0.1
3.0.0
Overhaul for simplicity and maintainability
v2.2.4 - Lauterbur
v2.2.3 - Lauterbur
- Revert error on different image shapes from RavelNormalize; it is required!
v2.2.2 - Lauterbur
- Remove plural from
ModalityandTissueTypeenumerations. - Update tutorials to use the
ModalityandTissueTypeenumerations. - Remove error on different image shapes from
RavelNormalizewhen registration enabled.
v2.2.1 - Lauterbur
- Update documentation to support modifications to Python API
- Update dependencies
- Remove incorrect warning from WhiteStripe normalization
v2.2.0 - Lauterbur
- Change backend to
pymedioto support more medical image formats
v2.1.4 - Austin
- Fix testing bugs in 2.1.3 and cleanup some interfaces