MRT mit EEG-Visualisierung

PythonPythonBeginner
Jetzt üben

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

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden Sie durch die Erstellung einer Visualisierung eines MRT-Bilds mit EEG-Spuren mithilfe von Python Matplotlib geführt. Sie werden lernen, wie Sie MRT- und EEG-Daten laden und anzeigen, ein Intensitäts-Histogramm des MRT-Bilds erstellen und EEG-Spuren mit der Zeit auf der x-Achse und den Elektrodenkanälen auf der y-Achse plotten.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

MRT-Daten laden und das Bild anzeigen

Der erste Schritt besteht darin, die MRT-Daten zu laden und das Bild anzuzeigen. Wir werden die imshow()-Funktion verwenden, um das Bild anzuzeigen, und axis('off'), um die Achsenbeschriftungen zu entfernen.

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure("MRI_with_EEG")

## Lade die MRT-Daten (256x256 16-Bit-Ganzzahlen)
im = np.load('mri_data.npy')

## Plotte das MRT-Bild
ax0 = fig.add_subplot(2, 2, 1)
ax0.imshow(im, cmap='gray')
ax0.axis('off')

Plotten des Histogramms der MRT-Intensität

Als nächstes werden wir das Histogramm der MRT-Intensität mit der hist()-Funktion plotten. Wir werden die Intensitätswerte auf einen Bereich zwischen 0 und 1 normalisieren.

## Plotten des Histogramms der MRT-Intensität
ax1 = fig.add_subplot(2, 2, 2)
im = np.ravel(im)
im = im[np.nonzero(im)]  ## Ignoriere den Hintergrund
im = im / im.max()  ## Normalisiere
ax1.hist(im, bins=100)
ax1.set_xlabel('Intensität (a.u.)')
ax1.set_ylabel('MRT-Dichte')

EEG-Daten laden und Spuren plotten

Der nächste Schritt besteht darin, die EEG-Daten zu laden und die Spuren zu plotten. Wir werden die fromfile()-Funktion verwenden, um die Daten aus einer Datei zu laden, und LineCollection(), um die Spuren zu plotten. Wir werden auch die y-Achsenmarkierungen auf die Elektrodenkanäle setzen.

## Lade die EEG-Daten
n_samples, n_rows = 800, 4
data = np.load('eeg_data.npy')
t = 10 * np.arange(n_samples) / n_samples

## Plotte die EEG-Spuren
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  ## Platzieren Sie sie ein wenig enger.
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)

## Setze die y-Achsenmarkierungen, um die Achsenkoordinaten auf der y-Achse zu verwenden
ax2.set_yticks(offsets[:, 1])
ax2.set_yticklabels(['PG3', 'PG5', 'PG7', 'PG9'])
ax2.set_xlabel('Zeit (s)')

Zeige die Visualisierung an

Schließlich werden wir die Visualisierung mit der show()-Funktion anzeigen.

plt.tight_layout()
plt.show()

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie mithilfe von Python Matplotlib eine Visualisierung eines MRT-Bilds mit EEG-Spuren erstellen. Sie haben das MRT-Bild geladen und angezeigt, ein Intensitäts-Histogramm des MRT-Bilds geplottet und EEG-Spuren mit der Zeit auf der x-Achse und den Elektrodenkanälen auf der y-Achse geplottet.