itk.imread of dicom images with dtype int16

Hi all
In my project I am trying to register two sets of images.
When I read my moving image which is a T1 MR Quantitative Map , using DICOM reader [pydicom.dcmread] , the image is loaded correctly as below:
[note that dtype=int16]
However, when I read the same series of DICOM images using itk library doing

moving_image = itk.imread(directory , PixelType=itk.F)

the image I see is as below [which dtype is float32] :
and I was trying different dtype selection in function but they don’t seem to work out. For example I tried ‘unsigned short’ = so it is equal to original dtype int16 but I see the below result :


is there anything i can do about it ?
also this needs to be considered that in itk documentation is mentioned for doing elastix registration (which is what I want to do) reading with itk.F is needed

PS: the images shown are from two different adjacent slices, but the results are pretty similar.

Hi @alireza_samadi ,

Is the image read correctly with dcmqi?

@alireza_samadi Could you share the image (or one slice)?

yes here they are: (1.4 MB)

1 Like

The image has Photometric Interpretation PALETTE_COLOR, something is probably wrong with palette. I shall look closer later. The monochrome version might be sufficient for registration. (1.4 MB)

P.S. BTW, another (unrelated) issue is that all images share the same Series UID, but have different Study UIDs and Frame of Reference UIDs. It is wrong.
Here is fixed version: (1.4 MB)


I have tried to look at the palette, but I have to give up. Every image has different palette data and settings, I looked at binary data of the palette of image0001.dcm and image0015.dcm, all three (red, green, blue) seem to contain only 0x00 or 0xFF. No DICOM viewer I have tried could open palette better. I hope monochrome version from the above post is OK.

hi thanks this Monochrome Version seems to work fine! :slight_smile: can I ask what should I do to convert the rest of my images similarly?