Lors du concours Kaggle, des images tomodensitométriques et des images DICOM de la poitrine sont sorties et je ne savais pas comment les gérer.
・ Qu'est-ce qu'une image DICOM? ・ Comment afficher les images DICOM et gérer les données
DICOM est une norme qui définit les formats des images médicales prises par CT, IRM, CR, etc. et le protocole de communication entre les dispositifs d'images médicales qui les traitent. wiki
Installation
%pip install pydicom
l'ensemble de données contient des métadonnées
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)
La valeur peut être affichée et accessible par nom de clé (.Rows) ou par numéro (0x0010,0x0010).
dataset[0x0010, 0x0010]
dataset.Rows
Jusqu'à ce que l'image s'affiche
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