pyradiomics implements several filters that are used to transform intensities using simple functions, i.e. square, square root, logarithm and exponential transformations. To allow for validating and reproducing pyradiomics-based studies with MIRP, these filters need be implemented. Their mathematical descriptions are trivial.
However, it is not 100% clear where these filters should be placed in the image processing workflow. IBSI-conform processing suggests that filtering should be done after all other image processing, and prior to feature computation. It seems that at least the high-level interface to the processing workflow (the execute method of the RadiomicsFeatureExtractor class in radiomics/featureextractor.py) does in fact perform filtering last. This would mean that any image normalisation is conducted on the original image, not the filtered image, in the generality of cases in literature.
[x] Implement as objects in mirp/imageFilters.
[x] square
[x] square root
[x] logarithm
[x] exponential
[x] Add new transformed image object class in mirp/images/transformedImage.
[x] square
[x] square root
[x] logarithm
[x] exponential
[x] Add filters to list in get_available_image_filters in ImageTransformationSettingsClass. Filter names should be pyradiomics_* to make it clear that these are re-implementations of the pyradiomics filters.
[x] square
[x] square root
[x] logarithm
[x] exponential
[x] Add filter-specfic has_*_filter method to ImageTransformationSettingsClass.
[x] square
[x] square root
[x] logarithm
[x] exponential
[x] Add filters to transform_images in the StandardWorkflow object to allow for their use in image processing.
[x] square
[x] square root
[x] logarithm
[x] exponential
[x] Add test for filter.
[x] square
[x] square root
[x] logarithm
[x] exponential
[x] Update documentation of ImageTransformationSettingsClass to mention these filters.
pyradiomics implements several filters that are used to transform intensities using simple functions, i.e. square, square root, logarithm and exponential transformations. To allow for validating and reproducing pyradiomics-based studies with MIRP, these filters need be implemented. Their mathematical descriptions are trivial.
However, it is not 100% clear where these filters should be placed in the image processing workflow. IBSI-conform processing suggests that filtering should be done after all other image processing, and prior to feature computation. It seems that at least the high-level interface to the processing workflow (the
execute
method of theRadiomicsFeatureExtractor
class inradiomics/featureextractor.py
) does in fact perform filtering last. This would mean that any image normalisation is conducted on the original image, not the filtered image, in the generality of cases in literature.mirp/imageFilters
.mirp/images/transformedImage
.get_available_image_filters
inImageTransformationSettingsClass
. Filter names should bepyradiomics_*
to make it clear that these are re-implementations of the pyradiomics filters.has_*_filter
method toImageTransformationSettingsClass
.transform_images
in theStandardWorkflow
object to allow for their use in image processing.ImageTransformationSettingsClass
to mention these filters.