torchio icon indicating copy to clipboard operation
torchio copied to clipboard

Standardize Axes in Random Transforms. Add Random Axis to RandomMotion

Open blakedewey opened this issue 7 months ago • 1 comments

Fixes #81

Description

This pull request standardizes the use of axes in random transforms. It also adds random axes options in the RandomMotion transform. Includes the following changes:

  • Update to_tuple to see strings as singular values (this also required adding number of changes to checks for strings in areas where numbers are necessary). Tests all pass.
  • Add parse_axes and ensure_axes_indices to base Transform class. Standardizes the use of axes in all transforms. Capable of accepting integer and specific string axis values. This is now used in RandomFlip, RandomMotion, RandomGhosting, RandomAnisotropy. Tests were added to check these additional axis values.
  • Added a random axis parameter to RandomMotion. This now works properly on 2D images and can apply motion to any axis of 3D images. Also removed redundant change between matrix and transform.

Checklist

  • [x] I have read the CONTRIBUTING docs and have a developer setup (especially important are pre-commitand pytest)
  • [ ] Non-breaking change (would not break existing functionality)
  • [x] Breaking change (would cause existing functionality to change)
  • [x] Tests added or modified to cover the changes
  • [x] Integration tests passed locally by running pytest
  • [x] In-line docstrings updated
  • [x] Documentation updated, tested running make html inside the docs/ folder
  • [x] This pull request is ready to be reviewed

blakedewey avatar Jul 07 '24 02:07 blakedewey