как преобразовать папку nift в изображения png?

*библиотека

есть наиболее известная библиотека, импортированная из NumPy, и imageio import NumPy as np import os import nibabel as nib import imageio // метод, в котором я пишу код для преобразования nift в png
Метод преобразовать изображение niif(.nii) в изображение png

  for f in filenames:
                          #Start reading nii files
                   img_path = os.path.join(filepath, f)
                   img = nib.load(img_path) #read nii
                   img_fdata = img.get_fdata()
                   fname = f.replace('.nii','') 
# Remove the nickname of nii
                   img_f_path = os.path.join(imgfile, fname)
                          #Create a folder corresponding to the image of nii
                   if not os.path.exists(img_f_path):
                     os.mkdir(img_f_path) #New folder
          
                          #  to image
                   (x,y,z) = img.shape
                   for i in range(z): #x is the sequence of images
                     silce = img_fdata[i, :, :] #Select which direction the slice can be
                     imageio.imwrite(os.path.join(img_f_path,'{}.png'.format(i)), silce) #Save image
     #main function where fill path was gived
   

основной

 if __name__ == '__main__':
             filepath = '/content/drive/MyDrive/sem 8/dataset/pr' 
             imgfile = '/content/drive/MyDrive/sem 8/dataset/propi'
             nii_to_image(filepath)

person Sir Mayur    schedule 14.03.2021    source источник


Ответы (1)


После того, как вы загрузите файл nifti в виде массива NumPy, запустите его для каждого фрагмента (z из img.shape), а затем сохраните массив в png.

Убедитесь, что при запуске каждого слайса вы сохраняете только существующий (z_slice_number):

    slice = img_fdata[:, :, z_slice_numer]

И чтобы сохранить этот фрагмент, вы можете сделать следующее (или другим способом из здесь):

    matplotlib.image.imsave('name.png', slice)
person avivd    schedule 14.04.2021