Beim Kaggle-Wettbewerb kamen CT-Scan-Bilder und DICOM-Bilder der Brust heraus und ich wusste nicht, wie ich damit umgehen sollte.
・ Was ist ein DICOM-Bild? ・ Anzeigen von DICOM-Bildern und Umgang mit Daten
DICOM ist ein Standard, der die Formate von medizinischen Bildern definiert, die mit CT, MRT, CR usw. aufgenommen wurden, und das Kommunikationsprotokoll zwischen den medizinischen Bildgeräten, die sie verarbeiten. wiki
Installation
%pip install pydicom
Datensatz enthält Metadaten
import pydicom
import matplotlib.pyplot as plt
from pydicom.data import get_testdata_files
filename = get_testdata_files('CT_small.dcm')[0]
dataset = pydicom.dcmread(filename)
print(dataset)
Der Wert kann über den Schlüsselnamen (.Rows) oder die Nummer (0x0010,0x0010) angezeigt und aufgerufen werden.
dataset[0x0010, 0x0010]
dataset.Rows
Bis das Bild angezeigt wird
pat_name = dataset.PatientName
display_name = pat_name.family_name + ", " + pat_name.given_name
print("Patient's name...:", display_name)
print("Patient id.......:", dataset.PatientID)
print("Modality.........:", dataset.Modality)
print("Study Date.......:", dataset.StudyDate)
print(dataset[0x0018, 0x0050])
if 'PixelData' in dataset:
rows = int(dataset.Rows)
cols = int(dataset.Columns)
print("Image size.......: {rows:d} x {cols:d}, {size:d} bytes".format(
rows=rows, cols=cols, size=len(dataset.PixelData)))
if 'PixelSpacing' in dataset:
print("Pixel spacing....:", dataset.PixelSpacing)
# use .get() if not sure the item exists, and want a default value if missing
print("Slice location...:", dataset.get('SliceLocation', "(missing)"))
# plot the image using matplotlib
plt.imshow(dataset.pixel_array, cmap=plt.cm.bone)
plt.show()
Recommended Posts