简体   繁体   中英

how to convert a nift folder to png images?

* library

there is a mostly known library imported from NumPy and imageio import NumPy as np import os import nibabel as nib import imageio // method where I have I write code to convert a nift to png
Method convert a nift(.nii) image to png image def nii_to_image(niifile): filenames = os.listdir(filepath) #read nii folder slice_trans = [] #filename is the path of nii image

  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
   

main

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

After you load the nifti file as NumPy array as you did, run on every slice (z from img.shape) and then save the array to png.

Make sure that when you run on each slice you save only the existing one (the z_slice_number):

    slice = img_fdata[:, :, z_slice_numer]

And to save this slice you can do as follow (or another way from here ):

    matplotlib.image.imsave('name.png', slice)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM