Visualisation IRM avec EEG

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Ce laboratoire vous guidera dans la création d'une visualisation d'une image IRM avec des traces EEG à l'aide de Python Matplotlib. Vous allez apprendre à charger et afficher les données IRM et EEG, tracer un histogramme d'intensité de l'image IRM et tracer les traces EEG avec le temps sur l'axe des x et les canaux d'électrodes sur l'axe des y.

Conseils sur la VM

Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.

Charger les données IRM et afficher l'image

La première étape consiste à charger les données IRM et à afficher l'image. Nous utiliserons la fonction imshow() pour afficher l'image et axis('off') pour supprimer les étiquettes d'axe.

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure("MRI_with_EEG")

## Charger les données IRM (entiers signés 16 bits, 256x256)
im = np.load('mri_data.npy')

## Tracer l'image IRM
ax0 = fig.add_subplot(2, 2, 1)
ax0.imshow(im, cmap='gray')
ax0.axis('off')

Tracer l'histogramme de l'intensité de l'IRM

Ensuite, nous allons tracer l'histogramme de l'intensité de l'IRM à l'aide de la fonction hist(). Nous allons normaliser les valeurs d'intensité pour qu'elles se situent entre 0 et 1.

## Tracer l'histogramme de l'intensité de l'IRM
ax1 = fig.add_subplot(2, 2, 2)
im = np.ravel(im)
im = im[np.nonzero(im)]  ## Ignorer l'arrière-plan
im = im / im.max()  ## Normaliser
ax1.hist(im, bins=100)
ax1.set_xlabel('Intensité (a.u.)')
ax1.set_ylabel('Densité IRM')

Charger les données EEG et tracer les traces

L'étape suivante consiste à charger les données EEG et à tracer les traces. Nous utiliserons la fonction fromfile() pour charger les données à partir d'un fichier et LineCollection() pour tracer les traces. Nous définirons également les étiquettes d'échelle sur l'axe des y pour les canaux d'électrodes.

## Charger les données EEG
n_samples, n_rows = 800, 4
data = np.load('eeg_data.npy')
t = 10 * np.arange(n_samples) / n_samples

## Tracer les données EEG
ax2 = fig.add_subplot(2, 1, 2)
ax2.set_xlim(0, 10)
ax2.set_xticks(np.arange(10))
dmin = data.min()
dmax = data.max()
dr = (dmax - dmin) * 0.7  ## Les espacer un peu.
y0 = dmin
y1 = (n_rows - 1) * dr + dmax
ax2.set_ylim(y0, y1)

segs = []
for i in range(n_rows):
    segs.append(np.column_stack((t, data[:, i])))

offsets = np.zeros((n_rows, 2), dtype=float)
offsets[:, 1] = np.arange(n_rows) * dr

lines = LineCollection(segs, offsets=offsets, transOffset=None)
ax2.add_collection(lines)

## Définir les échelles y pour utiliser les coordonnées des axes sur l'axe des y
ax2.set_yticks(offsets[:, 1])
ax2.set_yticklabels(['PG3', 'PG5', 'PG7', 'PG9'])
ax2.set_xlabel('Temps (s)')

Afficher la visualisation

Enfin, nous allons afficher la visualisation à l'aide de la fonction show().

plt.tight_layout()
plt.show()

Sommaire

Dans ce laboratoire, vous avez appris à créer une visualisation d'une image IRM avec des traces EEG à l'aide de Matplotlib en Python. Vous avez chargé et affiché l'image IRM, tracé un histogramme d'intensité de l'image IRM et tracé des traces EEG avec le temps sur l'axe des x et les canaux d'électrodes sur l'axe des y.