Next Previous Contents

7. Auxiliary programs

7.1 Programs for operations on surfaces


surfrelax

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.


7.2 Programs for operations on image volumes

Note that although these programs are primarily intended for use with 3D images, with the exception of imageeuler all should (but don't always) work on 2D images as well, and many also work on 1D and 4D images.

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. 


7.3 Programs for operations on surface ROIs

None as yet.
 

7.4 Conversion programs

image2surf

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.


7.5 External programs used in the package

AIR 3.0: tfialign, tfireslice, tfialign_warp, tfireslice_warp

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.

7.6 Other useful programs

geomview

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.
 



Next PreviousContents