Ich habe eine medizinische Dicom-Bilddatei (Röntgenbild) aus der ich die reinen Bildinformationen (ein 2D-Array mit Grauwerten) extrahiert habe.
Das funktioniert auch alles ganz gut, mit matplotlib kann ich mir das Bild auch anschauen. Das passt.
Jetzt muss ich das aktuelle Bild aber fenstern, es soll also nur ein bestimmter Wertebereich "übrig bleiben" (falls das kein Begriff ist: https://de.wikipedia.org/wiki/Fensterun ... mographie).
Konkret möchte ich alle Grauwerte unter 15637 und alle über 16909 abknipsen und den Rest auf einen Wertebereich von 0 bis 1272 umlegen.
Ich habe quick 'n dirty etwas selbst gebaut (siehe unten), einfach um zu testen ob mir das Ergebnis weiterhilft. Das funktioniert so, das Ergebnis hilft mir, aber das alles ist natürlich sehr träge.
Kennt jemand einen schnelleren Weg Bilddaten zu fenstern? Ohne große Probleme kann ich numpy, matplotlib, cv2, imutils, math und pydicom nutzen. Ein weiteres Paket kann ich zur größten Not auch installieren, aber das wäre aufwendig (Krankenhaus...).
Code: Alles auswählen
#dicom ist ein 2D-Array mit Grauwerten
h = dicom.shape[0]
b = dicom.shape[1]
for i in range (0,h):
for j in range (0,b):
if dicom[i,j] < 15637:
dicom[i,j] = 0
if dicom[i,j] > 16909:
dicom[i,j] = 1272
if dicom[i,j] >=15637 and dicom[i,j] <=16909:
dicom[i,j] = (1272-(16909 - dicom[i,j]))