niiまたはnii.gzファイルの情報を読み出すと出力画像操作です。


niiまたはnii.gzファイルの情報を読み出し、イメージを出力します。

import matplotlib
from matplotlib import pylab as plt
import nibabel as nib
from nibabel.viewers import OrthoSlicer3D
file = '' #  nii  nii.gz    
img = nib.load(file) 
 
print(img)
print(img.header['db_name']) #  nii    
width, height, queue = img.dataobj.shape
OrthoSlicer3D(img.dataobj).show()
 
num = 1
for i in range(0, queue, 10):
 img_arr = img.dataobj[:,:,i]
 plt.subplot(5,4,num)
 plt.imshow(img_arr, cmap='gray')
 num += 1
 
plt.show()
補足知識:SimpleITK医学画像.niiデータ(2 D表示)
【環境】win 10+python 3.6+SimpleITK
niiファイルはNIFTI形式のファイルで、出現の原因は元の画像フォーマットはANALYZE 7.5フォーマットであるが、この画像フォーマットには方向情報がない、例えば患者の左右方向などの情報がない、もし追加の情報が必要なら、ANALYZE 7.5ペアが必要である。ファイルは画像の完全な情報を保存します。
したがって、この問題を解決するData Format Working Group(DFWG)は、画像フォーマットの完全な定義をNIFTI(Neuromaging Informaties Technology Initiative)フォーマットとしている。

import SimpleITK as sitk
import skimage.io as io

def read_img(path):
 img = sitk.ReadImage(path)
 data = sitk.GetArrayFromImage(img)
 return data
#       
def show_img(data):
 for i in range(data.shape[0]):
  io.imshow(data[i,:,:], cmap = 'gray')
  print(i)
  io.show()
 
#    
def show_img(ori_img):
 io.imshow(ori_img[100], cmap = 'gray')
 io.show()

#window        
path = 'D:\\datasets\\Naso_GTV\\1\\data.nii.gz'
data = read_img(path)
show_img(data)

img = sitk.ReadImage(path)
#      
print(img.GetDepth())
#144  144  
#  Size
print(img.GetSize())
#(512,512,144)   :512*512, 144   
もっと多くの関数は自分で発見します。

以上の記事はniiまたはnii.gzファイルの情報を読み込むということです。出力画像操作は小編集で皆さんに共有している内容です。参考にしていただければ幸いです。よろしくお願いします。