brainles-preprocessing 0.6.8__tar.gz → 0.6.10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/PKG-INFO +1 -1
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/defacing/defacer.py +31 -10
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/defacing/quickshear/nipy_quickshear.py +4 -8
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/defacing/quickshear/quickshear.py +4 -2
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/__init__.py +0 -2
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/pyproject.toml +1 -1
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/LICENSE +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/README.md +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/brain_extraction/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/brain_extraction/brain_extractor.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/brain_extraction/synthstrip.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/brats/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/brats/t1_centric.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/brats/t1c_centric.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/cli.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/constants.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/defacing/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/defacing/quickshear/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/modality.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/n4_bias_correction/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/n4_bias_correction/n4_bias_corrector.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/n4_bias_correction/sitk/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/n4_bias_correction/sitk/sitk_n4_bias_corrector.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/normalization/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/normalization/normalizer_base.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/normalization/percentile_normalizer.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/normalization/windowing_normalizer.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/preprocessor/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/preprocessor/atlas_centric_preprocessor.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/preprocessor/native_space_preprocessor.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/preprocessor/preprocessor.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/ANTs/ANTs.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/ANTs/TODO_ANTs_parameters.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/ANTs/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/elastix/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/elastix/elastix.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/greedy/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/greedy/greedy.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/groupwise_niftyreg_params.sh +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/groupwise_niftyreg_run.sh +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_aladin +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_average +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_f3d +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_jacobian +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_measure +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_resample +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_tools +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/bin/reg_transform +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/AffineDeformationFieldKernel.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/AladinContent.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/BlockMatchingKernel.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUAffineDeformationFieldKernel.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUBlockMatchingKernel.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUConvolutionKernel.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUKernelFactory.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUOptimiseKernel.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/CPUResampleImageKernel.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/ConvolutionKernel.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/Kernel.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/KernelFactory.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/OptimiseKernel.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/Platform.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/ResampleImageKernel.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ReadWriteImage.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ReadWriteMatrix.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin.cpp +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin_sym.cpp +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_aladin_sym.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_base.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_blockMatching.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_dti.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d2.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_f3d_sym.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_femTrans.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_globalTrans.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_kld.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_lncc.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans_jac.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_localTrans_regul.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_macros.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_maths.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_maths_eigen.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_measure.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_mind.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_nmi.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_optimiser.cpp +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_optimiser.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_resampling.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_splineBasis.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_ssd.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_stringFormat.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/_reg_tools.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/nifti1.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/nifti1_io.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/png.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngconf.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngdebug.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pnginfo.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pnglibconf.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngpriv.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/pngstruct.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/readpng.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/reg_png.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/zlib.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/znzlib.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/niftyreg_1.5.68/include/zutil.h +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/reg_aladin +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/reg_resample +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/rigid_reg.sh +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/niftyreg/niftyreg_scripts/transform.sh +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/registration/registrator.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/transform.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/utils/__init__.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/utils/citation_reminder.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/utils/generic.py +0 -0
- {brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/utils/zenodo.py +0 -0
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
from abc import ABC, abstractmethod
|
|
2
2
|
from pathlib import Path
|
|
3
|
-
from typing import Union
|
|
4
|
-
|
|
3
|
+
from typing import Union, Optional
|
|
4
|
+
import numpy as np
|
|
5
5
|
from auxiliary.io import read_image, write_image
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
class Defacer(ABC):
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
def __init__(
|
|
10
|
+
self,
|
|
11
|
+
masking_value: Optional[Union[int, float]] = None,
|
|
12
|
+
):
|
|
13
|
+
"""
|
|
14
|
+
Base class for defacing medical images using brain masks.
|
|
11
15
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
Subclasses should implement the `deface` method to generate a defaced image
|
|
17
|
+
based on the provided input image and mask.
|
|
18
|
+
"""
|
|
19
|
+
# Here, masking value functions as a global value across all images and modalities
|
|
20
|
+
# If no value is passed, the minimum of a given input image is chosen
|
|
21
|
+
# TODO: Consider extending this to modality-specific masking values in the future, this should
|
|
22
|
+
# probably be implemented as a property of the the specific modality
|
|
23
|
+
self.masking_value = masking_value
|
|
15
24
|
|
|
16
25
|
@abstractmethod
|
|
17
26
|
def deface(
|
|
@@ -24,7 +33,7 @@ class Defacer(ABC):
|
|
|
24
33
|
|
|
25
34
|
Args:
|
|
26
35
|
input_image_path (str or Path): Path to the input image (NIfTI format).
|
|
27
|
-
mask_image_path (str or Path): Path to the output mask image (NIfTI format).
|
|
36
|
+
mask_image_path (str or Path): Path to save the output mask image (NIfTI format).
|
|
28
37
|
"""
|
|
29
38
|
pass
|
|
30
39
|
|
|
@@ -43,6 +52,9 @@ class Defacer(ABC):
|
|
|
43
52
|
defaced_image_path (str or Path): Path to save the resulting defaced image (NIfTI format).
|
|
44
53
|
"""
|
|
45
54
|
|
|
55
|
+
input_image_path = Path(input_image_path)
|
|
56
|
+
mask_path = Path(mask_path)
|
|
57
|
+
|
|
46
58
|
if not input_image_path.is_file():
|
|
47
59
|
raise FileNotFoundError(
|
|
48
60
|
f"Input image file does not exist: {input_image_path}"
|
|
@@ -63,8 +75,17 @@ class Defacer(ABC):
|
|
|
63
75
|
if input_data.shape != mask_data.shape:
|
|
64
76
|
raise ValueError("Input image and mask must have the same dimensions.")
|
|
65
77
|
|
|
66
|
-
#
|
|
67
|
-
|
|
78
|
+
# Check whether a global masking value was passed, otherwise choose minimum
|
|
79
|
+
if self.masking_value is None:
|
|
80
|
+
current_masking_value = np.min(input_data)
|
|
81
|
+
else:
|
|
82
|
+
current_masking_value = (
|
|
83
|
+
np.array(self.masking_value).astype(input_data.dtype).item()
|
|
84
|
+
)
|
|
85
|
+
# Apply mask (element-wise either input or masking value)
|
|
86
|
+
masked_data = np.where(
|
|
87
|
+
mask_data.astype(bool), input_data, current_masking_value
|
|
88
|
+
)
|
|
68
89
|
|
|
69
90
|
# Save the defaced image
|
|
70
91
|
write_image(
|
|
@@ -11,6 +11,7 @@ import sys
|
|
|
11
11
|
import nibabel as nb
|
|
12
12
|
import numpy as np
|
|
13
13
|
from numpy.typing import NDArray
|
|
14
|
+
from scipy.ndimage import convolve
|
|
14
15
|
|
|
15
16
|
try:
|
|
16
17
|
from duecredit import BibTeX, due
|
|
@@ -83,14 +84,9 @@ def edge_mask(mask):
|
|
|
83
84
|
brain = mask.any(axis=0)
|
|
84
85
|
|
|
85
86
|
# Simple edge detection
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
- np.roll(brain, -1, 0)
|
|
90
|
-
- np.roll(brain, 1, 1)
|
|
91
|
-
- np.roll(brain, -1, 1)
|
|
92
|
-
!= 0
|
|
93
|
-
)
|
|
87
|
+
kernel = np.array([[0, -1, 0], [-1, 4, -1], [0, -1, 0]])
|
|
88
|
+
edgemask = convolve(brain, kernel, mode="constant", cval=0.0) != 0
|
|
89
|
+
|
|
94
90
|
return edgemask.astype("uint8")
|
|
95
91
|
|
|
96
92
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from pathlib import Path
|
|
2
|
-
from typing import Union
|
|
2
|
+
from typing import Union, Optional
|
|
3
3
|
|
|
4
4
|
import nibabel as nib
|
|
5
5
|
from auxiliary.io import read_image, write_image
|
|
@@ -35,6 +35,7 @@ class QuickshearDefacer(Defacer):
|
|
|
35
35
|
buffer: float = 10.0,
|
|
36
36
|
force_atlas_registration: bool = True,
|
|
37
37
|
atlas_image_path: Union[str, Path, Atlas] = Atlas.SRI24,
|
|
38
|
+
masking_value: Optional[Union[int, float]] = None,
|
|
38
39
|
):
|
|
39
40
|
"""Initialize Quickshear defacer
|
|
40
41
|
|
|
@@ -42,8 +43,9 @@ class QuickshearDefacer(Defacer):
|
|
|
42
43
|
buffer (float, optional): buffer parameter from quickshear algorithm. Defaults to 10.0.
|
|
43
44
|
force_atlas_registration (bool, optional): If True, forces atlas registration of the BET mask before defacing to potentially boost quickshear performance. Defaults to True.
|
|
44
45
|
atlas_image_path (Union[str, Path, Atlas], optional): Path to the atlas image or an Atlas enum value that will be used for the optional atlas registrations. Defaults to Atlas.SRI24.
|
|
46
|
+
masking_value (Optional[Union[int, float]], optional): global value to be inserted in the masked areas. Default is None which leads to the minimum of each respective image.
|
|
45
47
|
"""
|
|
46
|
-
super().__init__()
|
|
48
|
+
super().__init__(masking_value=masking_value)
|
|
47
49
|
self.buffer = buffer
|
|
48
50
|
self.force_atlas_registration = force_atlas_registration
|
|
49
51
|
self.atlas_image_path = atlas_image_path
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import warnings
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
try:
|
|
5
4
|
from .ANTs.ANTs import ANTsRegistrator
|
|
6
5
|
except ImportError:
|
|
@@ -11,7 +10,6 @@ except ImportError:
|
|
|
11
10
|
|
|
12
11
|
from .niftyreg.niftyreg import NiftyRegRegistrator
|
|
13
12
|
|
|
14
|
-
|
|
15
13
|
try:
|
|
16
14
|
from .elastix.elastix import ElastixRegistrator
|
|
17
15
|
except ImportError:
|
|
@@ -14,7 +14,7 @@ exclude = [
|
|
|
14
14
|
]
|
|
15
15
|
|
|
16
16
|
name = "brainles_preprocessing"
|
|
17
|
-
version = "0.6.
|
|
17
|
+
version = "0.6.10" # will be overwritten by poetry-dynamic-versioning but needs to be set
|
|
18
18
|
description = "Tool for preprocessing tasks in biomedical imaging, with a focus on (but not limited to) multi-modal brain MRI"
|
|
19
19
|
license = "Apache-2.0"
|
|
20
20
|
|
|
File without changes
|
|
File without changes
|
{brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/cli.py
RENAMED
|
File without changes
|
{brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/modality.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{brainles_preprocessing-0.6.8 → brainles_preprocessing-0.6.10}/brainles_preprocessing/transform.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|