Skip to content

Gyrification index, mean and gaussian curvature

stnava edited this page Apr 4, 2020 · 4 revisions

Method : Shape operator for images

example calculation of sulci and gyri https://imgur.com/a/DVoNL8N

see ?localGyrificationIndex in ANTsR

library( ANTsR )
fn = 'brainseg.nii.gz'
seg = antsImageRead( fn )
gm = thresholdImage( seg, 2, 4 )
wm = thresholdImage( seg, 3, 4 )
wmdil = morphology( wm, 'dilate', 1 )
wmdil = smoothImage( wmdil * gm, 0.5 )
##################
kapch = weingartenImageCurvature( wmdil, 3.0, 'characterize' )
antsImageWrite( kapch, '/tmp/kapch.nii.gz' )
kapmn = weingartenImageCurvature( wmdil, 3.0, 'mean' )
antsImageWrite( kapmn, '/tmp/kapmn.nii.gz' )
fn = 'cortex.nii.gz'
ctx = antsImageRead( fn )
antsImageWrite( kapch * ctx, '/tmp/kapctx.nii.gz' )
gyrsulc = kapch * ctx
gyri = thresholdImage( gyrsulc, 1, 1 )  + thresholdImage( gyrsulc, 5, 5 )
sulc = thresholdImage( gyrsulc, 2, 2 )  + thresholdImage( gyrsulc, 6, 6 )
gyrsulc = gyri + sulc * 2
antsImageWrite( gyrsulc, '/tmp/kapgs.nii.gz' )
# count gyrus and sulcus
table( gyrsulc[ gyrsulc > 0] )

approximate:

"amount of cortex buried within the sulcal folds as compared with the amount of visible cortex in circular regions of interest"

from this paper

See below for index to surface characterization:

for surface characterization 
 1 == (+) bowl 
 2 == (-) bowl  
 3 == (+) saddle 
 4 == (-) saddle 
 5 == (+) U 
 6 == (-) U 
 7 == flat 
 8 == a perfectly even saddle (rare)