Heat Kernel Smoothing on Anatomical Manifolds

Description 

Gaussian kernel smoothing has been widely used in 3D brain images to increase the signal-to-noise ratio. The Gaussian kernel weights observations according to their Euclidean distance. When the observations lie on a convoluted brain surface; however, it is more natural to assign the weight based on the geodesic distance along the surface [1]. On the curved manifold, a straight line between two points is not the shortest distance so one may incorrectly assign less weights to closer observations. Therefore, smoothing data residing on manifolds requires constructing a kernel that is isotropic along the geodesic curves. With this motivation in mind, we constructed the kernel of a heat equation on manifolds that should be isotropic in the local conformal coordinates, and develop a framework for heat kernel smoothing on cortical manifolds.


Figure 1. Heat kernel smoothing of real (top row) and simulated (bottom row) data. Simulation is descripted in [1].


MATLAB Codes (MATLAB 6.1. implementation)

One reason that the code is short and simple is that it has been implemented as iterative kernel smoothing with very small bandwidth. For small bandwidth, a heat kernel converges to a Gaussian kernel. If you are using the following MATLAB codes in your research, please reference [1] or [2] in the documentation.
The following cod will load the surface into MATLAB
[tri,coord,nbr,normal]=mni_getmesh('outersurface.obj');
trisurf(tri, coord(1,:),coord(2,:),coord(3,:));  % displays the outersurface
load thickness.data;
output=hk_smooth(thickness',tri,coord,nbr,1,200);  % heat kernel smoothing with bandwidth 1 and 200 iterations
trisurf(tri, coord(1,:),coord(2,:),coord(3,:),output);

Documentation

Created 02/05/2005. Update history 01/13/2006, 11/28/2006, 09/05/2007, 09/22/2007