Grundsätzlich, wenn Sie die dicoms mit SimpleITK.ReadImage oder VTK lesen, lädt das Tool die Dateien in der gleichen Reihenfolge Ihrer Liste (in der Regel alphabetisch). Die Zuordnung zwischen den Slices und den Dateien erfolgt nicht in alphabetischer Reihenfolge, sondern in zufälliger Reihenfolge. Dies führt dazu, dass der Slice Spacing (ein Tag, der in diesen Daten fehlt) falsch berechnet wird, da es sich um den Unterschied in der Position zwischen Datei 0 und 1 handelt. Es verursacht auch Gehirnschnitte zwischen zwei Lungenschnitten und anderen seltsamen Artefakten.
Die Lösung besteht darin, die Dateien mit der Funktion GetGDCMSeriesFileNames
vorzusortieren.
# noinspection PyPep8Naming
import SimpleITK as sitk
def safe_sitk_read(img_list, *args, **kwargs):
dir_name = os.path.dirname(img_list[0])
s_img_list = sitk.ImageSeriesReader().GetGDCMSeriesFileNames(dir_name)
return sitk.ReadImage(s_img_list, *args, **kwargs)
VTK markiert wurde, weil es ein ähnliches Problem zu sein schien [hier] (http://public.kitware.com/ pipermail/vtkusers/2008-Dezember/049808.html) – kmader