Hi @mafuentes, not a python expert, but have you tried to use itk.ImageFileReader
? It probably casts the pixels to an available type.
import itk
input_image_path="/path/image.xxx"
reader = itk.ImageFileReader.New(FileName=input_image_path)
reader.Update()
img = reader.GetOutput()
You can check the types that are available by default from python using:
itk.ImageFileReader.GetTypesAsList()
["(<class 'itkImagePython.itkImageCF2'>,)",
"(<class 'itkImagePython.itkImageCF3'>,)",
"(<class 'itkImagePython.itkImageCVF22'>,)",
"(<class 'itkImagePython.itkImageCVF23'>,)",
"(<class 'itkImagePython.itkImageCVF32'>,)",
"(<class 'itkImagePython.itkImageCVF33'>,)",
"(<class 'itkImagePython.itkImageCVF42'>,)",
"(<class 'itkImagePython.itkImageCVF43'>,)",
"(<class 'itkImagePython.itkImageF2'>,)",
"(<class 'itkImagePython.itkImageF3'>,)",
"(<class 'itkImagePython.itkImageRGBAUC2'>,)",
"(<class 'itkImagePython.itkImageRGBAUC3'>,)",
"(<class 'itkImagePython.itkImageRGBUC2'>,)",
"(<class 'itkImagePython.itkImageRGBUC3'>,)",
"(<class 'itkImagePython.itkImageSS2'>,)",
"(<class 'itkImagePython.itkImageSS3'>,)",
"(<class 'itkImagePython.itkImageUC2'>,)",
"(<class 'itkImagePython.itkImageUC3'>,)",
"(<class 'itkImagePython.itkImageVF22'>,)",
"(<class 'itkImagePython.itkImageVF23'>,)",
"(<class 'itkImagePython.itkImageVF32'>,)",
"(<class 'itkImagePython.itkImageVF33'>,)",
"(<class 'itkImagePython.itkImageVF42'>,)",
"(<class 'itkImagePython.itkImageVF43'>,)",
"(<class 'itkVectorImagePython.itkVectorImageF2'>,)",
"(<class 'itkVectorImagePython.itkVectorImageF3'>,)",
"(<class 'itkVectorImagePython.itkVectorImageSS2'>,)",
"(<class 'itkVectorImagePython.itkVectorImageSS3'>,)",
"(<class 'itkVectorImagePython.itkVectorImageUC2'>,)",
"(<class 'itkVectorImagePython.itkVectorImageUC3'>,)"]
Maybe UC2
suits your purposes?