2016-07-08 16 views
1

Ich möchte die Fenster-Ebene meiner dicom Bilder von Lungenfenster zu Brustfenster ändern. Ich kenne die Werte, die für die Fensternivellierung benötigt werden. Aber wie implementiert man es in Python? Oder jemand kann mir eine detaillierte Beschreibung dieses Prozesses zur Verfügung stellen.Window-Leveling in Python

+1

Haben Sie sich die Beschreibung der Fensterung im DICOM-Standard angesehen? http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.11.2.html#sect_C.11.2.1.2 Oder worauf bezieht sich Ihre Frage noch? –

Antwort

1

Ich habe dies bereits in Python implementiert. Werfen Sie einen Blick auf die Funktion GetImage in dicomparser Modul in der dicompyler-core Bibliothek.

Im Wesentlichen folgt was kritzel_sw suggeriert.

0

Folgende Open-Source-Code kann Bone-Fenster implementieren.

def get_pixels_hu(slices): 
    image = numpy.stack([s.pixel_array for s in slices]) 
    image = image.astype(numpy.int16) 
    image[image == -2000] = 0 
    for slice_number in range(len(slices)): 
     intercept = slices[slice_number].RescaleIntercept 
     slope = slices[slice_number].RescaleSlope 
     if slope != 1: 
      image[slice_number] = slope * image[slice_number].astype(numpy.float64) 
      image[slice_number] = image[slice_number].astype(numpy.int16) 
     image[slice_number] += numpy.int16(intercept) 

    return numpy.array(image, dtype=numpy.int16) 

und ich fügte folgenden Code

image[slice_number] = image[slice_number]*3.5 + mean2*0.1 

nach Bild [Bereich_Nummer] + = numpy.int16 (Intercept) können Knochenfenster zu Hirngewebe Fenster ändern. Der Punkt ist die Einstellung von Parameter 3.5 und 0.1. Ich habe gerade versucht und diese beiden Parameter für Hirngewebe Fenster geeignet. Vielleicht können Sie sie für das Brustfenster anpassen.