- Fix silenced exception in Queue when using faulty transform by @Zhack47 in #1101
- Fix
RescaleIntensity
by @fepegar in #1116 - Queue length modification with the use of DDP by @haughty-yeon in #1127
- Fix get_subjects_from_batch ignoring metadata by @KonoMaxi in #1131
- Fix random errors in queue test by @fepegar in #1142
- Add masking_method arg name in Mask by @lchauvin in #1137
- Enable plotting of PNG images with alpha channel by @ChristianHinge in #1150
- Fix transforms taking strings instead of sequences by @fepegar in #1153
- Improve docs for "isotropic" arg in RandomAffine by @AminAlam in #1163
- Add support to slice images and subjects by @fepegar in #1170
- Make transform return the same type as input by @haarisr in #1182
- Fix error which copying a subclass of Subject with keyword attributes by @c-winder in #1186
- Add SubjectsLoader by @fepegar in #1194
- Replace p by **kwargs in all transforms by @dmus in #370
- Implementation of include/exclude args by @dmus in #373
- Remove internal self.fill, and keep padding_mode as string or number by @romainVala in #378
- Remove checks and casts to float32 by @dmus in #380
- Fix conversion to Pillow image by @fepegar in #385
- Print image path if probability map is empty by @fepegar in #386
- Remove torchvision requirement by @fepegar in #391
- Fix label sampler and improve error message by @fepegar in #394
- Fix error with invertible custom transforms, also keep include/exclude lists for inverse transforms. by @efirdc in #398
- New label transformations by @efirdc in #402
- Add transform to ensure shape multiple of N by @fepegar in #401
- Allow empty list as input to Compose. by @efirdc in #404
- Cast to float before computing mean by @fepegar in #408
- Add option to keep copies of original images by @fepegar in #413
- Delete image attribute when removing image by @fepegar in #415
- Add option to ignore intensity transforms when inverting by @fepegar in #417
- Add OneHot transform by @fepegar in #420
- Add option to modify interpolation when inverting by @fepegar in #418
- Add some label transforms for binary morphological operations by @fepegar in #424
- Small improvements for Queue by @fepegar in #423
- Fix CropOrPad for 2D images by @fepegar in #435
- Add EPISURG dataset by @fepegar in #433
- Add list of masks functionality to HistogramStandardization.train by @Linardos in #446
- Add support for custom image readers by @fepegar in #454
- Fix probabilities in label sampler by @fepegar in #459
- Use voxels rather than bounds when plotting images by @fepegar in #487
- Add input range kwarg for RescaleIntensity by @fepegar in #499
- Ignore NumPy underflows by @fepegar in #503
- Remove unused imports by @deepsource-autofix in #506
- Remove methods with unnecessary super delegation. by @deepsource-autofix in #507
- Add examples gallery to documentation by @fepegar in #508
- Fix 0 prob random sample in WeightedSampler by @TylerSpears in #511
- Avoid deprecation warnings by @fepegar in #517
- Add functions to process batches by @fepegar in #516
- Make the grid sampler compatible with the queue by @fepegar in #520
- Compress and cleanup downloaded datasets by @fepegar in #531
- Set minimum version for NumPy requirement by @fepegar in #532
- Fix unexpected exception handling by @siahuat0727 in #542
- Fix 'unraveling -1' in the weighted random sampler. by @dvolgyes in #551
- Add Mask transform by @Svdvoort in #527
- Add CopyAffine transform by @albansteff in #584
- Added Image method to convert from sitk to torchio by @mattwarkentin in #616
- Added intensity clamp transform by @mattwarkentin in #622
- Fix default pad value for label maps by @fepegar in #627
- Add tolerance for numeric checks by @justusschock in #592
- Fix syntax error for Python < 3.8 by @fepegar in #639
- Add support to pass shape and affine to Resample by @fepegar in #640
- Fix single slices metadata being lost by @fepegar in #641
- Add Resize transform by @fepegar in #642
- Raise from None to reduce error verbosity by @fepegar in #649
- Add RSNA-MICCAI brain tumor dataset by @fepegar in #650
- Fix visualization for subject with many images by @fepegar in #653
- Fix error when normalization mask is empty by @fepegar in #656
- Enable Indexing by int-Compatible type by @justusschock in #670
- Add support to crop/pad to the mask's bounding box by @fepegar in #678
- Add support to save GIFs by @fepegar in #680
- Add some Visible Human datasets by @fepegar in #679
- Add indices parameter for plotting volumes by @laynr in #683
- Remove channels_last kwarg from Image by @fepegar in #685
- Add parse_input kwarg to Transform by @fepegar in #696
- Cast translation argument to float64 for SimpleITK by @fepegar in #702
- Make Affine take RAS parameters of floating->ref by @fepegar in #712
- Rename master to main by @fepegar in #717
- Add method to show image with external viewer by @fepegar in #727
- Add kwarg to not check spatial consistency by @fepegar in #735
- Retrieve transforms history from batch dictionary by @fepegar in #745
- Add logic to invert OneHot transform by @fepegar in #748
- Fix wrong class when creating subjects from batch by @fepegar in #749
- Minor quality of life functions for inspecting scalar images and label maps by @mattwarkentin in #728
- Fix CropOrPad incorrectly storing bounds by @fepegar in #760
- Fix affine getter for multipath images by @fepegar in #763
- Check data type compatibility for custom reader by @fepegar in #770
- Use PyTorch to shuffle the queue patches by @fepegar in #776
- Fix
Blur
using only the first standard deviation by @fepegar in #772 - Add support to specify the interpolation type for label images by @snavalm in #791
- Fix overlapping in patches aggregator by @fepegar in #832
- Add support for torch >= 1.11 by @snipdome in #838
- Fix new SimpleITK release not being installed by @fepegar in #852
- Fix the wrong mapping in sequential labels transform by @iamSmallY in #841
- Return figure in plot_volume function by @dmus in #872
- Use PyTorch to compute Fourier transforms by @fepegar in #389
- Remove support for Python 3.6 by @fepegar in #881
- Add support to use different numbers of samples in the queue by @fepegar in #795
- Fix computation of kernels in
Blur
transform by @fepegar in #861 - Add support to pass label keys for dict input by @fepegar in #879
- Add support to mask 4D images with 3D masks by @fepegar in #908
- Add fftshift to fourier_transform with torch.fft by @iimog in #912
- Fix copying of subclasses of Subject by @justusschock in #794
- Use tqdm.auto by @fepegar in #926
- Add hann window function in GridAggregator as padding_mode by @LucaLumetti in #900
- Add RSNA 2022 Cervical Spine Fracture Detection dataset by @fepegar in #943
- Replace Click with Typer by @fepegar in #978
- Fix number of samples per subject in queue by @fepegar in #981
- Stop loading data when copying unloaded image by @fepegar in #982
- Add support to pass a callable as padding mode by @mueller-franzes in #959
- Use indexing instead of masked_select for faster normalization by @ramonemiliani93 in #1018
- Remove Visible Human Project datasets by @fepegar in #1026
- Add support for Python 3.11 by @fepegar in #1008
- Make subject parameter mandatory by @fepegar in #1029
- Improve support for queue in distributed training by @hsyang1222 in #1021
- Stop ignoring intensity transforms when computing inverse by @fepegar in #1039
- Add support to invert RescaleIntensity transform by @nicoloesch in #998
- Fix HistogramStandardization example by @vedal in #1022
- Add workflow to validate pull request title by @fepegar in #1042
- Add support to unload images by @fepegar in #983
- Split CI workflows by @fepegar in #1047
- Warn if 'mean' padding mode is used for label maps by @fepegar in #1065
- Fix unloaded image affine not read after CopyAffine by @fepegar in #1072
- Fix custom reader not propagated when copying by @fepegar in #1091
- Remove support for Python 3.7 by @fepegar in #1099
- Add
FPG
dataset - Optimize cropping in samplers
- Optimize implementation of
UniformSampler
andWeightedSampler
- Fix non integer labels in Colin 27 version 2008 (#223)
- Add
RandomAnisotropy
transform - Add
RandomGamma
transform - Add
ScalarImage
andLabelMap
classes - Add
RandomLabelsToImage
transform - Add support for more input types in
Transform
- Add support for 4D images
- Add ICBM dataset
- Add support to specify axes as anatomical labels
- Add
SpatialTransform
andIntensityTransform
- Replace
ImagesDataset
withSubjectsDataset
- Add support to pass multiple paths to
Image
- Refactor reproducibility features
- Add deterministic versions of all random transforms
- Add support to invert transforms
- Add support for SimpleITK > 1
- Add
pre-commit
to help contributions and improve code quality - Add DICOM data for testing
- Add some visualization support (
Subject.plot
,Image.plot
) - Add support to pass parameters per axis, e.g. for
RandomAffine
(#346) - Remove deprecated transforms
Resample
andCenterCropOrPad
- Add transforms history to
Subject
attributes to improve traceability - Add support to use an initial transformation in
Resample
- Add support to use an image file as target in
Resample
- Add
mean
argument toRandomNoise
- Add tensor support for transforms
- Add support to use strings as interpolation argument
- Add support for 2D images
- Add attribute access to
Subject
andImage
- Add MNI and 3D Slicer datasets
- Add
intensity
argument toRandomGhosting
- Add
translation
argument toRandomAffine
- Add shape, spacing and orientation attributes to
Image
andSubject
- Refactor samplers
- Refactor inference classes
- Add 3D Slicer extension
- Add ITK-SNAP datasets
- Add support to take NumPy arrays as transforms input
- Optimize cropping using PyTorch
- Optimizing transforms by reducing number of tensor copying
- Improve representation (
repr()
) ofImage
- Use lazy loading in
Image
- Add advanced padding options for
RandomAffine
- Add reference space options in
Resample
- Add probability argument to all transforms
- Add
OneOf
andCompose
transforms to improve composability
- Refactor
RandomElasticDeformation
transform - Make
Subject
inherit fromdict
- Add
datasets
module - Add support for DICOM files
- Add documentation
- Add
CropOrPad
transform
- Add
Subject
class - Add random blur transform
- Add lambda transform
- Add random patches swapping transform
- Add MRI k-space ghosting artefact augmentation
- Add ToCanonical transform
- Add CenterCropOrPad transform
- Add Resample transform
- Add Pad transform
- Add Crop transform
- Add CLI tool to transform an image from file
- Add Image class
- Make transforms use PyTorch tensors consistently
- Add support for NRRD
- Add bias field transform
- Add MRI k-space motion artefact augmentation
- Add Rescale transform
- Add support for multimodal data and missing modalities
- First release on PyPI.