input surface [+ deformation volume] => transformed input surface
Program for performing surface relaxation, deformation, and
flattening. This program is used in the InflateSurface script to
inflate surfaces by iterative relaxation. It is also used in the
SkullStrip, SegmentHemispheres, and OptimizeSurfaces scripts to deform
surfaces to image data. The program works by iteratively displacing
every surface vertex by a set of forces determined by intrinsic surface
properties (such as distance, areal, and angular distortion, distance
to overlap etc), neighbourhood relations (moving each vertex toward the
mean coordinate of its neighbours, i.e. relaxation), or image-based
forces (intensity or gradient of a target image). In addition, the
program can be used to project a cut (open) surface to a 2D plane. Note
that the projected surface will be highly distorted and must be relaxed
additionally to reduce these distortions. The input to the program is a
surface, optionally some image(s) for deformation, and a set of weights
for the various forces. Output is a transformed surface.
surfcut
input surface + cut surface => cut input surface
Program for cutting a surface (removing strips of triangles).
Surfaces are normally cut interactively in SurfaceViewer; however, it
may be desirable to apply the cuts made to one surface to another
transformed version of that same surface. (For instance, cuts are
usually made on an inflated surface, and to apply these cuts to the
uninflated surface surfcut can be used.) The input to this
program is a previously cut surface (which determines where the cuts
will be placed) and the target surface to be cut. These surface must
derive from the same original surface. It is possible for the cut
surface to be subsampled and the target surface to be un-subsampled,
but not the other way round.
surfresample
input surface => resampled input surface
Program for subsampling surfaces (reducing the number of vertices), or optionally, supersampling (adding new vertices).
Subsampling preserves a subset of the original vertices, spaced as evenly as possible on the surface. Subsampled surfaces are used to perform deformation and relaxation at multiple scales, both for speed and for accuracy. In order to apply deformations of subsampled surfaces to the original surfaces, an index is stored in the subsampled surface header that lists a) the original vertex indexes of subsample vertices b) for each original surface vertex, the vertex indexes of the triangle containing the original vertex in the subsampled surface c) the barycentric coordinates of the original vertex with respect to the three vertices in the new triangle. The barycentric weights can be used to interpolate transformations to subsampled vertices to all original vertices.
Supersampling adds new vertices and triangles by splitting every
triangle into four new triangles. No correspondence information is
retained, except that the new vertices are added after the original
surface, and hence new and old vertices can be identified by their
vertex indexes.
surfinfo
input surface => information (text)
Program for extracting various information about a surface, such as
the number of vertices, triangles, and edges; the genus; the area;
coordinates of single or all vertices; normal vector coordinates; etc.
surfclust
input surface [+vertex/volume data] => segmented component
surfaces
also:
input surface [+vertex/volume data] => connected component
data (text)
Program for extracting surface segments and data based on connected
components. Normally, this program is used to separate disconnected
surface segments which result from extracting a surface from a volume
containing multiple compartments (solid bodies). It can also be used to
extract values of connected regions of a surface within a certain data
range.
surffilt
input surface => vertex data (1D image file)
Program for filtering data on a surface. Data values for each vertex
is filtered with its neighbours iteratively. Data may be retrieved from
an image volume (3D VFF or IMG file format) based on surface
coordinates, or from a 1D VFF/IMG file with data values for each vertex
(such a file is generated by the surffilter program itself, or, for
instance, by the surf2image program described below). Filter options
are mean, min, max, and median. In addition, a Gauss-like filter option
is available. This works by iteratively applying a ramp filter with
small dimensions to each vertex value, scaled by distance to its
neighbours so as to be isotropic. By the central limit theorem, such a
filter will approximate a Gaussian filter after sufficiently many
iterations (as little as five iterations may be sufficient). Based on
average vertex-to-vertex distances, the FWHM of the approximated
Gaussian filter kernel is estimated on output. Output is a 1D image
file (VFF/IMG).
surfmask
input surface + input
volume => masked volume
Program for masking a volume with a surface.
surftransform
input surface +
transformation paramaters => transformed surface
Program for transforming a surface by affine or non-linear warping,
or using a reference surface.
surfoptimize
input surface +
anatomy image => white and gray matter surfaces
Program for optimizing a white matter surface and generating the
gray matter surface.
surf2graph
input surface +
anatomy image => mrGray style gray graph (segmentation)
input surface + anatomy image + flattened surface patch => mrLoadRet
flat map
Program for exporting SurfRelax data to a fromat mrLoadRet can read.
SurfaceViewer
Program for viewing surfaces.
imagerpn
input image volume [+additional volumes] => recalculated image volume
Program for performing voxelwise image arithmetics on a single or
multiple (up to 9) image volumes. Various mathematical operations can
be made, specified by a function string in Reverse Polish Notation
(RPN). Note that the volumes must have the same dimensions, although
VFF and IMG formats may be freely intermixed.
imagecluster
input image volume => filtered image volume
also:
input image volume => connected component data (text)
Program for extracting connected components (clusters) in image
volumes and/or calculating mean voxel intensities in the clusters.
imageconv
input image volume => image volume in different format
Program for converting between different image formats and voxel
orders.
imageeuler
input image volume => filtered image volume
Program for topological filtering of image volumes. See Larsson, J.
(2001) Imaging vision: Functional mapping of intermediate visual
processes in man. PhD Thesis, Karolinska Institutet. ISBN
91-7349-090-3.Online link: http://diss.kib.ki.se/2001/91-7349-090-3/
for a detailed description.
imagefilter
input image volume => filtered image volume
Program for filtering images; has max, min, mean, median and
Gaussian filtering options.
imageinfo
input image volume => filtered image volume
Program for obtaining data about the format and size of an image.
imageresample
input image volume => resampled image volume
Program for resampling an image to another resolution or size.
imagethickfilt
input image volume => filtered image volume
Program for thickening thin structures in structural data.
imagevoi
input image volume + VOI defining volume => extracted image data (text)
Program for extracting image VOI values from a single image or time
series (multiple images).
imagedetrend
input image volume
=> intensity inhomogeneity corrected image volume
Program to remove intensity inhomogeneities in an image, using a
polynomial approxiamtion to the intensity gradient. Works so-so.
imagehist
image volume =>
text info
Program to generate an image histogram.
imagedevolume
3 image volumes =>
single hi-res image volume
Program to combine three orthogonal images with high inplane
resolution and low z-resolution into a high-res isotropic image, using
the devoluming approach described by Sereno and Dale (J Cogn Neurosci
1993).
imagediffuse
image volume =>
filtered image volume
Program to perform anisotropic diffusion filtering of grayscale
images.
imagestat
image volume => image volume
Program to extract statistical parameters along a single image
dimension (usually time).
VolumeViewer
Program to visualize volumes.
input image volume => surface
Program for extracting the surface of a volume using a modified
Marching Cubes algorithm.
surf2image
input surface => image volume
Program for converting a surface to a volume, assuming a certain
thickness and volume size.
asc2image
input image volume
=> text file
Program for converting an image volume to text (ASCII) format.
image2asc
text file => image
volume
Program for converting and ASCII text file into image volume format.
Programs for realigning image volumes to one another. The versions used in this package (identified by the tfi prefix) have been modified to retain coordinate system origin information in the header in output files. Since this information is crucial to the correct operation of the SurfRelax programs, other versions of AIR must not be used with this package. For additional information about these programs, please refer to the official AIR documentation.
FSL: fast, bet
Porgrams for intensity correction/tissue classification and
segmentation (fast) and skull stripping (bet). See FSL documentation
for details.
Program for displaying manifolds (polygonal surface meshes in
arbitrary dimensions). For most purposes, SurfaceViewer is
more convenient and better suited to displaying functional imaging
data, but geomview does have more advanced (and with hardware
acceleration, faster) 3D rendering capacity and may be useful for
visualizing surfaces if overlays are not required. Since geomview
uses the OFF surface file format, it can read surfaces produced by the
TFI programs without modification. geomview can be downloaded
from the web, and the distribution includes a number of auxiliary
programs for converting surfaces to the OFF format from a variety of
other formats, which may be useful if transferring data made by other
packages to the TFI format.