簡體   English   中英

基於厚度的像素之間的着色區域

[英]Coloring area between pixels based on thickness

我正在嘗試分離大腦圖像中的灰質並根據每個點的皮質厚度對其進行着色,給出類似於以下的結果: Cortical thickness map based on this original: Original brain scan
到目前為止,我已經分割了白質邊界和灰質邊界,給了我這個:
白+灰質分割
下一步是我卡住的地方。
我需要通過為每個灰色邊界像素找到最近的白色邊界像素來找到兩個邊界之間的距離,並記錄它們之間的距離,如下所示:距離
這可以通過一些 for 循環和歐幾里得距離簡單地完成。
我的問題是如何為它們之間的像素着色/將距離值分配給它們之間的像素。

import numpy as np
import matplotlib.pyplot as plt
import nibabel as nib
from skimage import filters
from skimage import morphology


t1 = nib.load('raw_map1.nii').get_fdata()
t1map = nib.load('thickness_map1.nii').get_fdata()

filt_t1 = filters.gaussian(t1,sigma=1)
plt.imshow(filt_t1[:,128,:])

#Segment the white matter surface
wm = filt_t1 > 75
plt.imshow(wm[:,128,:])

med_wm = filters.median(wm)
plt.imshow(med_wm[:,128,:])

dilw = morphology.binary_dilation(med_wm)
edge_wm = dilw.astype(float) - med_wm
plt.imshow(edge_wm[:,128,:])

#Segment the gray matter surface
gm = (filt_t1 < 75) & (filt_t1 > 45)
plt.imshow(gm[:,128,:])

med_gm = filters.median(gm)
plt.imshow(med_gm[:,128,:])

dilg = morphology.binary_dilation(med_gm)
edge_gm = dilg.astype(float) - med_gm
plt.imshow(edge_gm[:,128,:])

dilw2 = morphology.binary_dilation(edge_wm)
plt.imshow(dilw2[:,128,:])

fedge_gm = edge_gm.astype(float) - dilw2
plt.imshow(fedge_gm[:,128,:])

fedge_gm2 = fedge_gm > 0
plt.imshow(fedge_gm2[:,128,:])

#Combine both surfaces
final = fedge_gm2 + edge_wm
plt.imshow(final[:,128,:])

您可以使用DL+DiReCThttps://github.com/SCAN-NRAD/DL-DiReCT

從作為輸入的腦部掃描(T1 加權 MRI)開始, DL+DiReCT標記包括皮層在內的解剖區域並計算體素方面的皮層厚度 map ( T1w_norm_thickmap.nii.gz )。 對於皮層內的每個體素,強度表示以毫米為單位的皮層厚度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM