Affichez des images DICOM avec Python rudimentaire en tant que professionnel de la santé

Je suis radiologue médical et physicien médical. Je laisserai un mémorandum du processus d'apprentissage de la programmation dans l'article. J'espère que cela sera utile à quelqu'un à l'avenir.

Je souhaite afficher une image DICOM

Que voulez-vous faire avec Python dans le cadre médical? Python est largement utilisé dans le traitement d'images médicales et il existe de nombreux thèmes tels que la reconnaissance automatique des lésions à partir d'images dans le domaine de l'apprentissage automatique. Les images utilisées dans le domaine médical sont des données au format DICOM. On peut dire que la connaissance DICOM est indispensable pour la programmation dans le domaine médical, principalement le traitement d'images. Et la première barrière que je veux essayer pour le moment est ** "Afficher les images en Python" **.

Qu'est-ce que DICOM

D'abord, organisons DICOM (pour moi).

DICOM est une abréviation qui relie les acronymes ** «Digital Imaging and Communications in Medicine» **. Il s'agit d'une norme utilisée pour communiquer des informations sur les images médicales, etc., et est utilisée dans le monde entier. Dans les données à communiquer, non seulement les données d'image qui sont généralement imaginées, mais également de nombreux éléments tels que le nom du patient, l'ID du patient, la date d'examen, le nom du dispositif et les conditions d'imagerie sont définis comme des informations accessoires.

Il existe différents fabricants de machines et d'équipements de communication utilisés pour l'inspection, mais les données sont plus fluides en utilisant des règles communes qui ne dépendent pas de fabricants tels que DICOM, au lieu de traiter les données avec des règles d'origine. Vous pouvez le gérer.

Dans le passé (toujours dans certaines installations), des photographies sur film roentgen étaient utilisées pour le diagnostic, mais le passage des images médicales analogiques aux images médicales numériques a facilité la gestion de vastes quantités de données médicales. L'existence de DICOM contribue également à cela.

En passant, il existe des données DICOM spéciales dans le domaine de la radiothérapie qui ne relèvent pas du domaine du diagnostic. Ce ne sont pas des connaissances nécessaires dans le processus d'affichage des images, mais je suis moi-même engagé dans le service de radiothérapie, donc je vais aborder un peu. Les données DICOM (DICOM RT) pour la radiothérapie comprennent des données basées sur des images telles que DICOM d'autres modalités d'image et des données non basées sur des images telles que des informations de coordonnées et des informations de réglage de l'appareil. alt La dose RT représente les informations de dose, la structure RT représente les informations de contrôle et RT Plan représente les informations de fonctionnement du dispositif, qui sont liées en tant qu'informations pour établir le traitement.

[Référence] DICOM Reverse BOOK (Vous pouvez afficher les diapositives du séminaire → Matériel de la session d'étude DICOM)

En plus de cela, il y a beaucoup d'informations utiles sur DICOM dans Japan Imaging Medical System Industry Association [JIRA]: The World of DICOM. Il est publié, veuillez donc vous y référer.

L'affichage d'image est super facile avec Python!

Il fut un temps où j'étudiais le C # pendant un moment, Je ne pouvais même pas afficher une tranche de l'image CT. C'est donc un obstacle très élevé pour moi d'afficher même une image ... Je pensais que ce n'était pas quelque chose que je pouvais faire pour le moment.

Pourtant!! C'était facile avec Python! J'ai été surpris. Est-ce si simple? Grâce à la riche bibliothèque, vous pouvez afficher du code simple simplement en le connaissant. Merci à ceux qui ont fait la bibliothèque.

Cette fois, je vais utiliser une image DICOM qui peut être utilisée gratuitement, donc Peu importe si vous n'avez pas d'image DICOM sous la main. Je suis à nouveau redevable à DICOM World. Je suis juste reconnaissant.

Environnement (Mac)

python 3.7.4 matplotlib 3.1.1 pydicom 1.2.2 Terminal (je n'utilise pas Jupyter Notebook) Atom (tout éditeur de texte est acceptable)

Code entier

show_dicom.py


from matplotlib import pyplot as plt
import pydicom

cr = pydicom.read_file("CR_LEE_IR6a.dcm")

plt.imshow(cr.pixel_array, cmap = "gray")
plt.show()

** * Enregistrez les données DICOM (.dcm) à utiliser dans le même répertoire que le code (.py). ** **

Image de sortie

スクリーンショット 2020-04-11 19.16.57.png

c'est tout. N'est-ce pas super facile? J'ai pu afficher l'image en seulement 5 lignes. Vous pouvez le faire avec un code simple en tirant parti des excellents modules existants tels que matplotlib et pydicom.

Je vais omettre la syntaxe de Python. Essayez-le.

Enfin, je voudrais vous présenter un site très utile. ** Salle Euromedic de physique médicale ** Blog de la salle de physique médicale Il contient des informations détaillées qui seront très utiles lors de l'utilisation de Python dans le domaine de la radiothérapie. Il ne fait aucun doute que ce sera utile, alors si vous êtes intéressé, jetez-y un œil!

Recommended Posts

Affichez des images DICOM avec Python rudimentaire en tant que professionnel de la santé
Travailler avec des images DICOM en Python
Débarrassez-vous des images DICOM en Python
Se débarrasser des images DICOM avec Python Partie 2
Spécifiez une sous-commande comme argument de ligne de commande en Python
Prendre une capture d'écran en Python
Encodage base64 des images en Python 3
Créer une fonction en Python
Créer un dictionnaire en Python
Publication d'une bibliothèque qui masque les données de caractères dans les images Python
L'image en échelle de gris est affichée sous forme d'image couleur dans OpenCV / Python
Créer un bookmarklet en Python
Dessinez un cœur en Python
Enquêter sur ce qui pourrait être utilisé comme analyseur Markdown en Python
Obtenez la formule dans le fichier Excel sous forme de chaîne en Python
Reconnaissance des nombres dans les images avec Python
Probablement dans un serpent Nishiki (Titre original: Peut-être en Python)
Ecrire une dichotomie en Python
Utilisez pymol comme bibliothèque python
[python] Gérer les fonctions dans une liste
Appuyez sur une commande en Python (Windows)
Utilisez le tissu tel quel en python (fabric3)
Créer un conteneur DI avec Python
Comment collecter des images en Python
Dessinez une matrice de diagramme de dispersion avec python
ABC166 en Python A ~ C problème
Ecrire des algorithmes A * (A-star) en Python
Créer un fichier binaire en Python
Extraire du texte d'images avec Python
Utilisez Blender comme module Python
Résoudre ABC036 A ~ C avec Python
Ecrire un graphique à secteurs en Python
Ecrire le plugin vim en Python
Écrire une recherche de priorité en profondeur en Python
Implémentation d'un algorithme simple en Python 2
Résoudre ABC037 A ~ C avec Python
Lancer le script Python en service
Exécutez un algorithme simple en Python
Dessinez un diagramme CNN en Python
Créer une chaîne aléatoire en Python
Lors de l'écriture d'un programme en Python
Si vous voulez un singleton en python, considérez le module comme un singleton
Comment installer le package python dans un environnement local en tant qu'utilisateur général
Fonction Eval () qui calcule une chaîne de caractères comme expression en python
Que se passe-t-il si vous "importez A, B comme C" en Python?
Générer une collection de première classe en Python
Livre en spirale en Python! Python avec un livre en spirale! (Chapitre 14 ~)
Résoudre ABC175 A, B, C avec Python
Utiliser l'impression dans l'expression lambda Python2
Affichage du graphique en chandeliers en Python (édition matplotlib)
Un client HTTP simple implémenté en Python
Installer Python en tant que Framework avec pyenv
Faites une visite Euler non récursive en Python
J'ai fait un programme de gestion de la paie en Python!
Précautions lors du décapage d'une fonction en python
Appliquer diverses formes de mosaïques aux images (Python, OpenCV)
Ecrire le test dans la docstring python
Afficher une liste d'alphabets en Python 3
Essayez d'envoyer un paquet SYN en Python