Tensor-Based Surface Morphometry

Note
Please do not link this page. This is for our research purpose only. The original MRI data come from NIH and the Montreal Neurological Institute processed MRIs. Afterwards, I wrote Mathlab codes for computing curvatures and smoothing them on the cortical surface via diffusion smoothing to increase the signal to noise ratio.  Please do not distribute data to others who are not involved in this project. For any question, please email me.

Goal
We want to develope a tensor-based surface morphometry to analyze surface shape variations associated with the brain. To do so,
we need a surface registration algorithm that minimizes sulcal shape variations. Given two different surface meshes, the registration algorithm will find a smooth 3D displacement vector field that  minimize the shape difference between two surfaces. We will approach this problem in small steps.

Triangular Surface Mesh Data Structure
It is based on so called 'pyramid data structure'. The ASCII file sphere_81920.obj contains the coordinates and connectivity information about a triangular mesh which forms an ellipsoid. To understand triangular mesh data structure, see file format. Also take a look at the matlab codes that read data into matlab and computes curvatures. read_surface.m will read triangular meshes into matlab. I put diffusion_smooth which does diffusion filtering on surface. To understand the triangular surface mesh structure fully and how it can be manipulated using differential geometry, please consult my PhD thesis and an article by MacDonald et al. in NeuroImage 12:340-356 (2000).
 

Problem 1: Sulcal Pattern Matching
Sulcal pattern matching on a sphere. The following picture shows the mean curvature of the inner cortical surface projected on an ellipsoid. The mean curvature was computed via a quadratic polynomial fitting at each vertex. Because the triangular mesh is not smooth enough, the mean curvature has some unwanted noise. To increase the signal to noise ratio (SNR), diffusion smoothing has been applied via the finite element method (FEM) on the triangular mesh. See  Chung et al (2000), which has been submitted to IEEE transactions on medical imaging. Afterwards, the mean curvatures should be thresholded at a certain value to generate binary data (1 = sulci, 0=gyri). In the picture below, red or blue regions are sulci and white regions are gyri. The problem is to find displacement vector field at each vertex on the ellipsoid to match the 14 year old sulcal pattern (red) to the 19  year old sulcal pattern (blue). *.mean files store the mean curvatures of the cortical surfaces in ASCII file format. The curvatures are stored in a sequencial order exactly matching the vertex ordering. For example, each file may contain the following sequence of real numbers

0.7376012e-02   -3.7562415e-02  ....,

where e-02 indicates 10^(-2).  The mean curvature is a very sensitive measure. Thresholding between 0 and 0.01 will be sufficient to show a sulcal strip pattern as displayed below.


 

Problem 2: Surface Registration
Using solutions to Problem 1, we now try to register between surfaces based on matching the continuous mean curvature values between 0 and 0.01. Compared to Problem 1, a slightly different approach might be needed. No one has approached surface registration in this way.  If we accomplish this, we will be the first. :)

Problem 3: Area-Preserving Surface Flattening
MacDonald et al (NeuroImage 12:340-356, 2000) gives automatic flattening algorithm from the cortex to a sphere. Now we want to map from the sphere to plane such that areas of triangles are propotionally preserved. I think we can approach this problem in terms of the least-squares estimation. The reason for surface flattening is that it is a good way to visualize. Also because most classical statistical procedures are based in a Euclidean space, by transforming the curved surface where data reside to a flat plane, traditional statistical analysis can be performed.

Problem 4: Extracting Sulci
Extracting sulci is a nontrivial problem and quite important in quantifying sulcal variations in a population. One way to do is to use mean curvature as I have explained above. Alternately, geodesic distance can be used to extract sulci. For further information, please talk to me.

FAQ
Question: How to get the mean curvature?
Answer: The mean curvature at each vertex can be computed using the Matlab code get_curvature.m. Run command line get_curvature(cortex), where cortex is the name of *.obj file you want to get the curvature.

Question: How to smooth signal on the cortical surface?
Answer: Run command line diffusion_smooth(cortex, get_curvature(cortex), 5, 1). It will give you smoothed mean curvature of cortex with 5mm FWHM filter size based on parametric version of diffusion smoothing.
 
 
 

Image Gallery

1) This picture shows what the inner surface looks like. The mean curvature has been computed. Without surface-based smoothing, it is almost impossible to get consistent less noise consistent sulcal pattern. One way to get very smooth sulcal pattern is to do mesh smoothing via Laplace smoothing; however, it more or less distorts the geometry.

2) This picture compares the mean curvature thresholded between [0, 0.01] of the outer and inner surface. The inner sulcal pattern is clearly superior than the outer sulcal pattern in a sense that the blue strips have more connected parts.


 

3) This picture shows superimposition of the above sulcal pattern. It clearly shows misalignment (Note: The right part of the surface is not superimposed).