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

[FEAT EXTRACTION] #733

Open x186 opened 2 years ago

x186 commented 2 years ago

I want to extract 2D features, but the feature name appears log-sigma-1-0-3D-XXX. I am using 2D image matrix and 2D ROI. Why do I extract features with 3D names? Other feature names are 2D, except log-sigma.

JoostJM commented 2 years ago

Laplacian of Gaussian implemented in PyRadiomics uses a 3D implementation of LoG. Currently no LoG in 2D is supported.

x186 commented 2 years ago

Laplacian of Gaussian implemented in PyRadiomics uses a 3D implementation of LoG. Currently no LoG in 2D is supported.

Thank you. I am using only a 2D image, not 3D. Can the extracted 3D Laplacian of Gaussian feature be used as a 2D feature?

JoostJM commented 2 years ago

Can the extracted 3D Laplacian of Gaussian feature be used as a 2D feature?

As far as I know, the LoG filter enforces a minimum size in all dimensions (I believe 4), so if your image is smaller than that, it would not be possible. Aside from that it would be technically possible, but the question remains if you consider the compute value to be valid.

Youyoun commented 1 year ago

Hello @JoostJM,

I find myself in the same situation as @x186, where I want to extract the radiomics features from a 2D ROI.

The check on size is done in the pyradiomics program, not in the Sitk LaplacianRecursiveGaussianImageFilter function (Although it probably is done there too). In the documentation of ITK, they provide code that is able to apply the filter on a 2D image: https://examples.itk.org/src/filtering/imagefeature/laplacianrecursivegaussianimagefilter/documentation

Is the issue the fact that this itk function is not implemented as is in SimpleITK ? Which makes it unusable in the 2D case ? If ITK was installed, wouldn't this function be usable in this case ? I don't know why the output values would be considered "not valid" in this case.