소개
이 랩에서는 Python Matplotlib 을 사용하여 MRI 이미지와 EEG 추적을 시각화하는 과정을 안내합니다. MRI 및 EEG 데이터를 로드하고 표시하는 방법, MRI 이미지의 강도 히스토그램을 플롯하는 방법, 그리고 x 축에 시간, y 축에 전극 채널을 사용하여 EEG 추적을 플롯하는 방법을 배우게 됩니다.
VM 팁
VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.
학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.
MRI 데이터 로드 및 이미지 표시
첫 번째 단계는 MRI 데이터를 로드하고 이미지를 표시하는 것입니다. imshow() 함수를 사용하여 이미지를 표시하고, axis('off')를 사용하여 축 레이블을 제거합니다.
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure("MRI_with_EEG")
## Load the MRI data (256x256 16-bit integers)
im = np.load('mri_data.npy')
## Plot the MRI image
ax0 = fig.add_subplot(2, 2, 1)
ax0.imshow(im, cmap='gray')
ax0.axis('off')
MRI 강도 히스토그램 플롯
다음으로, hist() 함수를 사용하여 MRI 강도의 히스토그램을 플롯합니다. 강도 값을 0 과 1 사이로 정규화합니다.
## Plot the histogram of MRI intensity
ax1 = fig.add_subplot(2, 2, 2)
im = np.ravel(im)
im = im[np.nonzero(im)] ## Ignore the background
im = im / im.max() ## Normalize
ax1.hist(im, bins=100)
ax1.set_xlabel('Intensity (a.u.)')
ax1.set_ylabel('MRI density')
EEG 데이터 로드 및 트레이스 플롯
다음 단계는 EEG 데이터를 로드하고 트레이스를 플롯하는 것입니다. fromfile() 함수를 사용하여 파일에서 데이터를 로드하고, LineCollection()을 사용하여 트레이스를 플롯합니다. 또한 y 축 눈금 레이블을 전극 채널로 설정합니다.
## Load the EEG data
n_samples, n_rows = 800, 4
data = np.load('eeg_data.npy')
t = 10 * np.arange(n_samples) / n_samples
## Plot the 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 ## Crowd them a bit.
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)
## Set the yticks to use axes coordinates on the y-axis
ax2.set_yticks(offsets[:, 1])
ax2.set_yticklabels(['PG3', 'PG5', 'PG7', 'PG9'])
ax2.set_xlabel('Time (s)')
시각화 표시
마지막으로, show() 함수를 사용하여 시각화를 표시합니다.
plt.tight_layout()
plt.show()
요약
이 랩에서는 Python Matplotlib 을 사용하여 MRI 이미지와 EEG 트레이스를 시각화하는 방법을 배웠습니다. MRI 이미지를 로드하고 표시하고, MRI 이미지의 강도 히스토그램을 플롯했으며, x 축에 시간을, y 축에 전극 채널을 사용하여 EEG 트레이스를 플롯했습니다.