Skip to content

Add image quality, orientation, visualisation and normalisation modules#89

Closed
FIrgolitsch wants to merge 10 commits intomainfrom
pr-5-utility-preprocessing-modules
Closed

Add image quality, orientation, visualisation and normalisation modules#89
FIrgolitsch wants to merge 10 commits intomainfrom
pr-5-utility-preprocessing-modules

Conversation

@FIrgolitsch
Copy link
Copy Markdown
Contributor

Summary

Adds several general-purpose library modules used by downstream pipeline steps and scripts, plus improvements to existing preprocessing code.

New Modules

Module Description
linumpy/utils/image_quality.py Sharpness (Laplacian variance), contrast, SNR, entropy, SSIM-3D, edge score, variance score
linumpy/utils/orientation.py parse_orientation_code, get_reorient_transform, reorient_volume to RAS convention
linumpy/utils/visualization.py create_registration_summary_plot, create_quality_heatmap, pipeline quality summary figures
linumpy/preproc/normalization.py normalize_volume (percentile/z-score/histogram-eq)
linumpy/preproc/resampling.py Mosaic grid resampling helpers

Improvements to Existing Code

  • linumpy/preproc/xyzcorr.py — galvo artefact detection now returns a confidence score; low-confidence detections can be skipped via a threshold
  • linumpy/preproc/icorr.py — improved illumination correction
  • linumpy/segmentation.pycreate_mask with normalisation option
  • linumpy/utils/io.pyadd_overwrite_arg, improved logging helpers
  • linumpy/utils/mosaic_grid.py — improved grid pattern detection, auto-detection for cleaned data directory structure
  • Minor PEP-8 / import-order cleanup in several library files

New Scripts

  • linum_generate_slice_config.py — generates a slice config CSV (slice_id, use, galvo_confidence, notes) from mosaic directories
  • linum_create_masks.py — CPU-based mask creation

Tests

New linumpy/tests/__init__.py marks the tests as a package. New tests for normalization, resampling, xyzcorr, orientation, and visualisation.

Dependencies

Depends on PR #85 (thread config module).


Merge order: Merge after PR #85.

New modules: utils/image_quality.py (sharpness/contrast/SNR metrics),
utils/orientation.py (RAS reorientation), utils/visualization.py
(pipeline quality summary plots), preproc/normalization.py (percentile/
zscore/histogram-eq), preproc/resampling.py. Enhanced preproc/xyzcorr.py
with galvo confidence scoring and preproc/icorr.py with improved
illumination correction. Adds linum_generate_slice_config.py and
linum_create_masks.py scripts, plus unit tests for all new modules.
@FIrgolitsch
Copy link
Copy Markdown
Contributor Author

Closing in favour of #97 (recreated with squashed commits as part of the PR split plan refresh).

@FIrgolitsch FIrgolitsch closed this Apr 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant