lungsArray erstellt + Lungenvolumen in lungsInLitre berechnet

main
Anastasia Kisner 2024-11-02 21:14:27 +01:00
parent bf66a2ca5d
commit d443258915
1 changed files with 7 additions and 3 deletions

10
main.py
View File

@ -1,8 +1,10 @@
import SimpleITK as sitk import SimpleITK as sitk
import numpy as np
img = sitk.ReadImage("Thorax1.0B40f_Downsampled_by_2.nrrd") img = sitk.ReadImage("Thorax1.0B40f_Downsampled_by_2.nrrd")
xSp, ySp, zSp = img.GetSpacing() xSp, ySp, zSp = img.GetSpacing()
volumePerVoxel = xSp * ySp * zSp
#print(f"Spacing: \n{xSp = }\n{ySp = }\n{zSp = }\n") #print(f"Spacing: \n{xSp = }\n{ySp = }\n{zSp = }\n")
print(f"1) Die Voxel sind Quader mit den verschiedenen Seitenlängen: X: {xSp}, Y: {ySp}, Z: {zSp} \n") print(f"1) Die Voxel sind Quader mit den verschiedenen Seitenlängen: X: {xSp}, Y: {ySp}, Z: {zSp} \n")
@ -16,12 +18,14 @@ print(f"2) Das Bild hat in den drei Raumrichtungen {xSi * ySi * zSi} Voxel. \n")
print(f"3) Die Methode GetSize() gibt den Typ tuple zurück. \n") print(f"3) Die Methode GetSize() gibt den Typ tuple zurück. \n")
#Sollte man kontrollieren #Sollte man kontrollieren
print(f"4) Der Bildausschnit in die drei Raumrichtungen ist X: {xSp*xSi} mm, Y: {ySp*xSi} mm, Z: {zSp*xSi} mm\n") print(f"4) Der Bildausschnitt in die drei Raumrichtungen ist X: {xSp*xSi} mm, Y: {ySp*xSi} mm, Z: {zSp*xSi} mm\n")
seedList = [(120,140,100)] seedList = [(120,140,100)]
lungs = sitk.ConnectedThreshold(img, seedList , -1100, -200) lungs = sitk.ConnectedThreshold(img, seedList , -1100, -200)
sitk.WriteImage(lungs, "lungs.nrrd") sitk.WriteImage(lungs, "lungs.nrrd")
lungsArray = np.array(sitk.GetArrayFromImage(lungs))
voxelInLungs = lungsArray[lungsArray > 0].size * volumePerVoxel
lungsInLitre = voxelInLungs / 1000000
#print(lungsInLitre)