Hi, I’m new to Slicer (version 5.8.1 on Windows 11 Pro) and would like to calculate radiomics features from native 2D DICOM images. I’m trying this code in the Python-Slicer terminal:
import slicer
import numpy as np
import SimpleITK as sitk
from radiomics import featureextractor
def calculate_2d_radiomics(image_node, segmentation_node, label_value=1, force_2d=True, force_2d_dimension=0):
extractor = featureextractor.RadiomicsFeatureExtractor()
extractor.settings[‘label’] = label_value
extractor.settings[‘force2D’] = force_2d
extractor.settings[‘force2Ddimension’] = force_2d_dimension
image_sitk = sitk.GetImageFromArray(slicer.util.arrayFromVolume(image_node))
segmentation_sitk = sitk.GetImageFromArray(slicer.util.arrayFromVolume(segmentation_node))
segmentation_sitk = sitk.Cast(segmentation_sitk, sitk.sitkUInt8)
try:
results = extractor.execute(image_sitk, segmentation_sitk)
return results
except Exception as e:
print(f"Error during feature extraction: {e}“)
return None
image_node = slicer.util.getNode(“DCM_IMG”)
segmentation_node = slicer.util.getNode(“SEG_IMG”)
if image_node and segmentation_node:
radiomics_results = calculate_2d_radiomics(image_node, segmentation_node, label_value=1, force_2d=True, force_2d_dimension=0)
if radiomics_results:
for key, value in radiomics_results.items():
if key.startswith(‘original’):
print(f”{key}: {value}")
else:
print(“Error: Please load an image and segmentation with specified names.”)
I’m getting this error:
AttributeError: ‘vtkSlicerMarkupsModuleMRMLPython.vtkMRMLMarkupsClo’ object has no attribute ‘GetImageData’
I’ve also tried different ROI segmentations: “closed curve,” “ROI,” etc.
Do you have some suggestions?
Thanks in advance for your help.