Read Image

Hello, I’m dealing with the following problem. I’ve a single 2D .dcm image and I want to read it through SITK. The problem is that SITK automatically applies the modality LUT when reading images, while usually when I read this image I use Pydicom and I apply VOI_LUT in order to read it properly. The consequence is that when using SITK the image has different colors from the original one, they are really brighter and the shapes are hardly distinguishable. Do you know how to solve this? Thanks in advance.

Hello @Enrico_Sarneri,

Can you share the image so that we have a better understanding of the issue?

ITK/SimpleITK attempt to read the image intensity data and do all the conversions upon read so that reading returns a scalar image or an RGB image depending on the various DICOM tags. By default this is done using the GDCM library. Another option is to use the DCMTK library but that requires that you build SimpleITK yourself. As I am not sure if this will make a difference I would recommend that you open the image in Slicer which allows you to select if you want to use GDCM or DCMTK.

If DCMTK works, you can build SimpleITK and set the advanced options to include -D Module_ITKIODCMTK:BOOL=ON. This will make DCMTK available as an IO module.

Finally, when reading you will need to specify that you want to use DCMTK sitk.ReadImage(file_name, imageIO = 'DCMTKImageIO)`, otherwise the first ImageIO that can read DICOM will be used and we don’t know if that is GDCM or DCMTK.

1 Like