AIM-Harvard / pyradiomics

Open-source python package for the extraction of Radiomics features from 2D and 3D images and binary masks. Support: https://discourse.slicer.org/c/community/radiomics
http://pyradiomics.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
1.14k stars 492 forks source link

Laplacian smoothing filter options #14

Closed fedorov closed 7 years ago

fedorov commented 8 years ago

ITK filter has SetNormalizeAcrossScale = false by default. Make sure this is corrected to True if needed when LoG is integrated into the new classes.

http://www.itk.org/Doxygen/html/classitk_1_1LaplacianRecursiveGaussianImageFilter.html#a35e2271327e14dc69b8e8371839b9883

vnarayan13 commented 8 years ago

http://www.itk.org/SimpleITKDoxygen/html/classitk_1_1simple_1_1RecursiveGaussianImageFilter.html

SetNormalizeAcrossScale Normalized Derivative Operator for Recursive Gaussian Filter

fedorov commented 8 years ago

@vnarayan13 can you either update the default settings used currently for LoG, or close this issue if this is not relevant?

naucoin commented 8 years ago

@vnarayan13 is the default setting okay from what you can see in the first pass of tests? https://circleci.com/gh/naucoin/pyradiomics/12 I'm working on the rest of the base classes now to allow specifying the Laplacian sigma on init.

fedorov commented 8 years ago

Laplacian is done in a separate step, it should not be in the init of the base class

naucoin commented 8 years ago

For my first pass at enabling it in the testing, it had to be supported in the first order feature class as an option and seemed to make sense to do as you're extracting the image array - I meant the feature base classes, not the base.py, there I just added saving information about the settings. It can be passed as an optional argument. https://github.com/naucoin/pyradiomics/commit/f7c38f07786fa3faa082c49a6fed85133e6a6ad8#diff-6f85cb29f57dd6041871ea2b804632e3R21

naucoin commented 8 years ago

Looking at the Matlab radiomics code: https://github.com/Radiomics/radiomics-matlab/blob/master/RadiomicsMatlab/feature_extraction/radiomics_LoG/radiomics_log_features.m#L65 My impression is that it is scaling the range, so I think that makes sense that we change SetNormalizedAcrossScale to True for the pyradiomics case: https://github.com/Radiomics/pyradiomics/blob/master/radiomics/imageoperations.py#L88 from the default ITK setting of False: https://itk.org/SimpleITKDoxygen/html/classitk_1_1simple_1_1RecursiveGaussianImageFilter.html#aa210389eadc2bcfdd06db0d82d7ff850

naucoin commented 8 years ago

@fedorov links provided so you can double check my reasoning

JoostJM commented 7 years ago

Resolved by #30 and #31, currently set to True