Histogramm des CT-Bilds erstellt + beschriftet

main
Anastasia Kisner 2024-11-02 22:35:31 +01:00
parent d443258915
commit 060a4df5c2
1 changed files with 14 additions and 0 deletions

14
main.py
View File

@ -1,5 +1,6 @@
import SimpleITK as sitk import SimpleITK as sitk
import numpy as np import numpy as np
import matplotlib.pyplot as plt
img = sitk.ReadImage("Thorax1.0B40f_Downsampled_by_2.nrrd") img = sitk.ReadImage("Thorax1.0B40f_Downsampled_by_2.nrrd")
@ -20,12 +21,25 @@ print(f"3) Die Methode GetSize() gibt den Typ tuple zurück. \n")
#Sollte man kontrollieren #Sollte man kontrollieren
print(f"4) Der Bildausschnitt 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")
# CT-Bild der Lunge erstellen
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")
# Volumen der Lunge berechnen
lungsArray = np.array(sitk.GetArrayFromImage(lungs)) lungsArray = np.array(sitk.GetArrayFromImage(lungs))
voxelInLungs = lungsArray[lungsArray > 0].size * volumePerVoxel voxelInLungs = lungsArray[lungsArray > 0].size * volumePerVoxel
lungsInLitre = voxelInLungs / 1000000 lungsInLitre = voxelInLungs / 1000000
#print(lungsInLitre) #print(lungsInLitre)
# Histogramm des CT-Bilds
thoraxArray = np.array(sitk.GetArrayFromImage(img))
thoraxArray1D = thoraxArray.flatten()
plt.hist(thoraxArray1D, 100)
plt.title("Histogramm eines Thorax")
plt.xlabel("Helligkeitswert in Hounsfield-Einheiten (HU)")
plt.ylabel("Häufigkeit in Millionen (mio)")
plt.show()
plt.clf()