This file is part of the Matlab Toolboxes of project Gerardus.

=============================================================
Toolboxes in Gerardus:
=============================================================

* CardiacToolbox

	Functions specific to cardiac image processing

* FileFormatToolbox

	Functions to create image files or convert image files from
	one format to another.

* FiltersToolbox

	Filters to enhance or transform images in general, and SCI
	NRRD data volumes in particular.

* ItkToolbox

	ITK functions running as MEX files in Matlab.

* ManifoldToolbox

	Operations with meshes and manifolds, open and closed.

* PointsToolbox

	Functions to operate with sets of points.

* ThirdPartyToolbox

	Derivative works or third party functions that cannot be
	covered by the GPL used elsewhere in Gerardus, or code with an
	uncertain licence status.


CardiacToolbox
-------------------------------------------------------------

blockface_correct_frame_shifts.m

	 blockface_correct_frame_shifts  Correct shift between blockface image
	 frames.
	
blockface_correct_perspective.m

	 blockface_correct_perspective  Correct perspective of Bewster angle
	 blockface images.
	
blockface_create_masks.m

	 blockface_create_masks  User interface to create the elliptical and
	 polygonal segmentation masks used to correct blockface illumination.
	
blockface_equalise_illumination.m

	 BLOCKFACE_EQUALISE_ILLUMINATION  Correct illumination inhomogeneities in
	 blockface photography.
	
blockface_intraframe_reg.m

	 BLOCKFACE_INTRAFRAME_REG  Register consecutive frames in a list of
	 blockface images.
	
correct_rv_crescent_tips.m

	 CORRECT_RV_CRESCENT_TIPS  Correct the segmentation of the Right
	 Ventricle's crescent tips using the segmentation of the tricuspid and
	 pulmonary annula
	
crest_envelope.m

	 CREST_ENVELOPE  Compute the envelope for the Right Ventricle's crest
	
histology_blockface_manual_correction.m

	 HISTOLOGY_BLOCKFACE_MANUAL_CORRECTION  Manual landmark correction of
	 3D histology volume to match blockface volume.
	
histology_blockface_preprocessing.m

	 histology_blockface_preprocessing  Prepare histology and blockface for
	 registration.
	
histology_blockface_reg.m

	 HISTOLOGY_BLOCKFACE_REG  Register deformed histology volume to blockface.
	
histology_intraframe_reg.m

	 histology_intraframe_reg  Registration diffusion of histology slices.
	
histology_preprocessing.m

	 HISTOLOGY_PREPROCESSING  Prepare slices for intra-histology registration.
	
is_lv_on_the_left.m

	 IS_LV_ON_THE_LEFT  Check whether the left ventricle is on the left hand
	 side of the image.
	
process_misas_patient.m

	 PROCESS_MISAS_PATIENT  Create MetaImage volumes from directory tree of
	 IMA DICOM files, for project with human hearts provided by Kelvin Wong
	
scimat_rv_crescent_tips.m

	 SCIMAT_RV_CRESCENT_TIPS  Extract the tips of the crescent-shaped curve
	 in all slices of the Right Ventricle.
	
tissue2lvrv.m

	 TISSUE2LVRV  Extract LV and RV cavities from tissue and atrioventricular
	 surface segmentations
	
trimatria.m

	 TRIMATRIA  Remove the atria from a whole cardiac tissue segmentation
	
ventricles_phantom.m

	 VENTRICLES_PHANTOM Create phantom image of simplified heart ventricles
	

CgalToolbox
-------------------------------------------------------------

cgal_alpha_shape3.m

	 CGAL_ALPHA_SHAPE3  Whole alpha-shape of a 3D set of points
	
cgal_check_self_intersect.m

	 CGAL_CHECK_SELF_INTERSECT Check for self-intersections in a triangular
	 mesh
	
cgal_closest_trifacet.m

	 CGAL_CLOSEST_TRIFACET  Closest triangular facet of a mesh to a point in 3D
	
cgal_fixed_alpha_shape3.m

	 CGAL_FIXED_ALPHA_SHAPE3  Individual alpha-shapes of a 3D set of points
	
cgal_insurftri.m

	 CGAL_INSURFTRI  Find whether a point is inside or outside a closed
	 surface.
	
cgal_meshseg.m

	 CGAL_MESHSEG  Surface meshing of an isosurface from a segmentation or
	 grayscale image.
	
cgal_surfsubdivision.m

	 CGAL_SURFSUBDIVISION  3D Surface Approximating Subdivision Methods
	
cgal_trifacet_area.m

	 CGAL_TRIFACET_AREA  Area of the facets in a triangular mesh
	
cgal_tri_fillholes.m

	 CGAL_TRI_FILLHOLES  Fill holes in a triangular mesh, with triangles.
	
cgal_tri_simplify.m

	 CGAL_TRI_SIMPLIFY  Reduce number of faces in triangular mesh using edge
	 collapse.
	

DiffusionMRIToolbox
-------------------------------------------------------------

add_Rician_noise_to_simulated_dMRI_data.m

	ADD_RICIAN_NOISE_TO_SIMULATED_DMRI_DATA adds Rician noise to simulated
	MRI_signals.
	
dt2image.m

	 DT2IMAGE Inverts the transform in fit_DT
	 
	 The suggested usage of this file is to easily check how well a diffusion
	 tensor fits to your data. Eg:
	
dt_from_smoldyn_pt1.m

	DT_FROM_SMOLDYN_PT1 Cuts down the positions data to only that needed.
	
dt_from_smoldyn_pt2.m

	DT_FROM_SMOLDYN_PT2 Calculates the MRI signal
	
dt_from_smoldyn_pt3.m

	DT_FROM_SMOLDYN_PT3 Calculates DT from MRI signal
	  
	 PART 3 OF THE CALCULATION OF THE DIFFUSION TENSOR FROM THE SMOLDYN MODEL DATA
	 This part calculates the diffusion tensor from the MRI signals.
	
fit_biexponential_tensor.m

	FIT_BIEXPONENTIAL_TENSOR Fit the bi-exponential tensor model
	 fits the function S = S0_fast * e^(b*D_fast) + S0_slow e^(b*D_slow)
	
fit_DKI_model.m

	 FIT_DT    Fits the diffusion kurtosis model voxelwise to an image
	           S = S0 exp(-(bD + 1/6 b^2 * K))
	
fit_DT.m

	 FIT_DT    Fits the diffusion tensor model voxelwise to an image
	           S = S0 exp(-bD)
	
fit_DT_YHd_method.m

	FIT_DT_YHD_METHOD Calculates the diffusion tensor to a set of diffusion
	MRI images
	
fit_stretched_exponential.m

	 FIT_STRETCHED_EXPONENTIAL    Fit the stretched exponential model of 
	 diffusion to an image
	
fit_stretched_exponential_tensor.m

global_reference_frame.m

	GLOBAL_REFERENCE_FRAME Returns unit vectors for the global reference frame
	   Fits a straight line through the center of the left ventricle cavity,
	   and then computes the radial, circumferential, and longitudinal vectors
	   based on this line.
	
quiver_image.m

	QUIVER_IMAGE Displays a 2D slice of a 3D image with a quiver plot
	   overlaid on top.
	
view_tensors.m

	 VIEW_TENSORS    Renders diffusion tensors in 3D, colour coded by HA
	
weighted_linear_fit.m

	WEIGHTED_LINEAR_FIT fits the function Y = MX (matrices) such that the
	 residuals are minimised after having @func applied to them. 
	 I.e. func(Y) - func(MX) is the problem we are really trying to
	 solve.
	
wild_bootstrapping_DTI.m

	 WILD_BOOTSTRAPPING_DTI Returns uncertainty measures from diffusion tensor
	 images via wild bootstrapping. See Whitcher 2008 - Using the Wild 
	 Bootstrap to Quantify Uncertainty in Diffusion Tensor Imaging
	

ElastixToolbox
-------------------------------------------------------------

elastix_affine_crot.m

	 ELASTIX_AFFINE_CROT  Change centre of rotation of Elastix affine
	 transform.
	
elastix_affine_matrix2struct.m

	 ELASTIX_AFFINE_MATRIX2STRUCT  Convert homogeneous coordinates matrix
	 format to elastix struct format.
	
elastix_affine_struct2matrix.m

	 ELASTIX_AFFINE_STRUCT2MATRIX  Convert any type of affine transform from
	 elastix struct format to homogeneous coordinates matrix format.
	
elastix_bspline_grid2param.m

	 ELASTIX_BSPLINE_GRID2PARAM  Convert control points from grid to
	 TransformParameters vector form.
	
elastix_bspline_grid.m

	 ELASTIX_BSPLINE_GRID  Control point grid of B-spline transformation.
	
elastix_cat.m

	 ELASTIX_CAT  Concatenation of elastix transforms.
	
elastix_colon.m

	 ELASTIX_COLON  Colon operator for elastix transforms.
	
elastix_compose_afftransf.m

	 ELASTIX_COMPOSE_AFFTRANSF  Composition of two 2D affine transforms.
	
elastix_delete_param_file.m

	 ELASTIX_DELETE_PARAM_FILE  Delete sequence of transform files.
	
elastix_fitgeotrans.m

	 ELASTIX_FITGEOTRANS  Transformix struct for image transformation obtained
	 from matching two sets of landmarks
	
elastix_length.m

	 ELASTIX_LENGTH  Number of transform levels in an elastix series.
	
elastix.m

	 ELASTIX  Matlab interface to the image registration program "elastix".
	
elastix_read_file2param.m

	 ELASTIX_READ_FILE2PARAM  Read file with elastix parameters into struct.
	 It accepts nested transform files.
	
elastix_read_reg_output.m

	 ELASTIX_READ_REG_OUTPUT  Read output of registration computed with
	 elastix.
	
elastix_transf_imcoord2.m

	 elastix_transf_imcoord  Convert 2D pixel coordinates using
	 elastix/transformix transform.
	
elastix_write_param2file.m

	 elastix_write_param2file  Write struct with elastix parameters to file.
	 It accepts nested transform parameters.
	
transformix.m

	 TRANSFORMIX  Matlab interface to the image warping program "transformix".
	
transformix_pts.m

	 TRANSFORMIX_PTS  Matlab interface to the image warping program
	 "transformix", but for point transformation.
	

FileFormatToolbox
-------------------------------------------------------------

dcm2mat.m

	 DCM2MAT  Read a batch of DICOM files, collate them and save as a
	 single volume in a .mat file
	
dcm2metaimage.m

	 DCM2METAIMAGE  Read a batch of DICOM files, collate them and save as a
	 single MetaImage volume (one .mha and one .raw file)
	
dcm2scimat.m

	 DCM2SCIMAT  Load DICOM file or convert DICOM image data into SCIMAT
	 format.
	
im2metaimage.m

	 IM2METAIMAGE  Read a batch of image files, collate them and save as a
	 single MetaImage "file" (actually, one .mha and one .raw file)
	
imread_list.m

	 IMREAD_LIST  Read list of image files into volume.
	
im_resize.m

	 IM_RESIZE Resize a list of image files (.tif, .png, etc) with ImageMagick
	 convert, directly file to file
	
load_dcm.m

	 LOAD_DCM  Load array of DICOM filenames as 3D+t image and metainformation
	 matrix.
	
load_multi_dcm_dir.m

	 LOAD_MULTI_DCM_DIR  Read metadata from DICOMDIR file.
	
match_file_lists.m

	 MATCH_FILE_LISTS  Sort and match two lists of filenames by chosen tokens,
	 removing filenames whose token is not in both lists.
	
matlab2vox_seg3d.m

	 MATLAB2VOX_SEG3D  Convert Matlab file with Seg3D segmentation to vox
	 format (for the Tarantula meshing application)
	
ndpi_focus_points.m

	 NDPI_FOCUS_POINTS  Read focus points coordinates from .ndpi image file
	 obtained from a Hamamatsu microscope.
	
nuimagesc.m

	 NUIMAGESC  imagesc() with non-uniform pixel spacing
	
parsave.m

	 parsave  Save workspace variables to file within a parfor loop.
	
scimat_im2scimat.m

	 SCIMAT_IM2SCIMAT  Create SCIMAT struct from scratch.
	
scimat_imagesc.m

	 SCIMAT_IMAGESC  Display 2D image in real world coordinate axes.
	
scimat_index2world.m

	 SCIMAT_INDEX2WORLD  Convert image indices to real world coordinates for
	 the SCIMAT image struct that we use in Gerardus.
	
scimat_load.m

	 SCIMAT_LOAD  Load an image into a SCIMAT struct from a Matlab, MetaImage,
	 Carl Zeiss LSM, Hamamatsu VMU or regular graphics file (PNG, TIFF, etc).
	
scimat_resample.m

	 SCIMAT_RESAMPLE resamples a scimat file given an input and output scimat.
	
scimat_save.m

	 SCIMAT_SAVE  Save a SCIMAT struct to several file formats.
	
scimat_scimat2imref.m

	 SCIMAT_SCIMAT2IMREF  Matlab's image reference frame from SCIMAT metadata.
	
scimat_seg3d2matlab.m

	 SCIMAT_SEG3D2MATLAB  Correct dimensions of data loaded from a *.mat file
	 created with Seg3D so that it will follow Matlab's convention.
	
scimat_slice_GUI.m

	 SCIMAT_SLICE_GUI  Create graphical user interface to view slices in
	 scimat struct. Checkboxes allow for slice visibility to be turned on/off
	
scimat_tiff2scimat.m

	 SCIMAT_TIFF2SCIMAT  Create SCIMAT struct from TIFF stack.
	
scimat_varian2scimat.m

scimat_world2index.m

	 SCIMAT_WORLD2INDEX  Convert real world coordinates to image indices for
	 the SCIMAT image struct that we use in Gerardus.
	 
	   Function SCIMAT_WORLD2INDEX() converts the coordinates of a voxel given
	   as real world coordinates [x, y, z, t] into index coordinates 
	   [row, column, slice, frame].
	
smoldyn2matlab.m

	SMOLDYN2MATLAB imports and converts Smoldyn molecule trajectory into
	Matlab format.
	
sortdirbynum.m

	 SORTDIRBYNUM  List the files in a directory ordering them by a numerical
	 substring field in the file name
	
vmu2png.m

	 VMU2PNG  Convert a microscope image file from .vmu to .png format.
	
writemetaimagefile.m

	 WRITEMETAIMAGEFILE  Write a MetaImage file (.mha) with both header and
	 data.
	
WriteMhaFile.m

	 WRITEMHAFILE  Write the header part of a MetaImage file (.mha)
	
WriteRawFile.m

	 WRITERAWFILE  Write the binary part of a MetaImage file (.raw)
	

FiltersToolbox
-------------------------------------------------------------

amrf_seg.m

	 AMRF_SEG  Adaptive Markov Random Field segmentation.
	
blockproc3.m

	 BLOCKPROC3  Block processing for a 3D image
	
bwbox.m

	 BWBOX  Find tight box around segmentation (and possibly add a margin)
	
bwregiongrow.m

	 BWREGIONGROW  Fast region grow labelling of binary image from multiple
	 seeds
	
bwrmsmallcomp.m

	 BWRMSMALLCOMP  Remove small connected components from a segmentation
	
bw_sb_interp.m

	 BW_SB_INTERP Function that performs the shape-base interpolation
	 following Herman et al. (1992) paper
	
bwsplitwithsurf.m

	 BWSPLITWITHSURF  Split a volume into connected components separated by a
	 surface
	
ccwrap.m

	 CCWRAP  Wrapper that enables CTRL+C interruption of MEX files
	
col2im3.m

correct_light_blobs_in_microscope_mosaic.m

	 CORRECT_LIGHT_BLOBS_IN_MICROSCOPE_MOSAIC  Correct the colour blob created
	 by the microscope's light in each tile of a mosaic, e.g. for histology.
	
forward_TGV.m

forward_TV_2D.m

	FORWARD_TV_2D Total variation of a 2D image
	   Returns the sum of finite differences in 2D, and the residuals
	
forward_TV.m

	FORWARD_TV Total variation of a 3D image
	   Returns the sum of finite differences in 3D, and the residuals
	
fspecial3.m

	 FSPECIAL3  Create predefined 3-dimensional filters
	
gmthr_seg.m

	 GMTHR_SEG  Segment an image estimating threshold as intersection of two
	 Gaussians from Gaussian mixture model
	
im2col3.m

im2dmatrix.m

	 IM2DMATRIX  Sparse distance matrix between 2D or 3D image voxels,
	 weighted by voxel intensities
	
imagesc_nD.m

imblend.m

	 IMBLEND  Blend two image stacks to increase the apparent dynamic range
	 and improve the signal to noise ratio
	
imcmass.m

	 IMCMASS  Centre of mass of an image.
	
img_tps_map.m

	 IMG_TPS_MAP Warp an image using a thin-plate spline transformation
	
im_modes.m

	 IM_MODES  Estimate typical values (modes) of foreground/background
	 intensities in a greyscale image.
	
inverse_TGV.m

	INVERSE_TGV Returns the residuals of 2nd order total generalised variation
	
inverse_TV_2D.m

	INVERSE_TV_D Inverse total variation of a 2D image
	   Returns the inverse of forward_TV_2D
	
inverse_TV.m

	INVERSE_TV Inverse total variation of an image
	   Returns the inverse of forward_TV
	
labmathmorph.m

	 LABMATHMORPH  Mathematical morphology operators on a labelled
	 segmentation, one label at a time
	
mm_opening.m

	 MM_OPENING Mathematical Morphology operator: Opening (erosion+dilation)
	 with removal of small components
	
scimat_blockproc3.m

	 SCIMAT_BLOCKPROC3  Block processing for a 3D SCI MAT volume
	
scimat_box.m

	 SCIMAT_BOX  Compute tight box around SCIMAT segmentation.
	
scimat_centroids.m

	 SCIMAT_CENTROIDS  Compute centroid of segmentation in each slice.
	
scimat_crop.m

	 SCIMAT_CROP  Crop a SCIMAT image or segmentation volume of any dimension.
	
scimat_downsample.m

	 SCIMAT_DOWNSAMPLE Downsample scimat image by x2.
	
scimat_estimate_bias_field.m

	 SCIMAT_ESTIMATE_BIAS_FIELD  Estimate MRI bias field.
	
scimat_gradients.m

	 SCIMAT_GRADIENTS  Compute 1st and 2nd order image gradients
	
scimat_intersect_plane.m

	 SCIMAT_INTERSECT_PLANE  Intersection of a plane with an image volume.
	
scimat_lconvhull_smoothing.m

	 SCIMAT_LCONVHULL_SMOOTHING  Mesh and rasterization of the smoothing of a
	 binary image using a local convex hull.
	
scimat_lineintersection.m

scimat.m

	 SCIMAT  Struct used in Gerardus to store 2D, 3D or 3D+t images and axis
	 metainformation.
	
scimat_ndgrid.m

	 SCIMAT_NDGRID  Generation of arrays for 2D to 4D SCIMAT image volumes.
	
scimat_optimal_intersecting_plane.m

	 SCIMAT_OPTIMAL_INTERSECTING_PLANE  Optimise intersection plane for SCIMAT
	 segmentation mask.
	
scimat_papillary_muscles.m

	 SCIMAT_PAPILLARY_MUSCLES  Extract the papillay muscles from a
	 segmentation of the Left Ventricle's cavity.
	
scimat_regionprops.m

	 SCIMAT_REGIONPROPS  Measure properties of image regions on each slice.
	
scimat_resize3.m

	 SCIMAT_RESIZE3 Resize a 3D scimat image.
	
scimat_seg2label_stats.m

	 SCIMAT_SEG2LABEL_STATS  Shape stats for each object in a multi-label
	 segmentation; objects can be straightened with an skeleton or medial line
	 before computing some measures.
	
scimat_seg2voxel_stats.m

	 SCIMAT_SEG2VOXEL_STATS  Shape stats for each voxel in a segmentation
	 based on a windowed neighbourhood.
	
scimat_skeleton_prune.m

	 SCIMAT_SKELETON_PRUNE  Prune branches in a segmentation's skeletonization
	
scimat_squeeze.m

	 SCIMAT_SQUEEZE  Remove dummy dimension from SCIRUNNRRD struct so that it
	 becomes a SCIMAT struct.
	
scimat_unsqueeze.m

	 SCIMAT_UNSQUEEZE  Add dummy dimension to SCIMAT struct so that it becomes
	 a SCIRUNNRRD struct.
	
scimat_upsample.m

scimat_vertical_orientation_pca_basis.m

	 SCIMAT_VERTICAL_ORIENTATION_PCA_BASIS  Compute a basis from the
	 Principal Components of a set of voxels, such that the vertical axis is
	 assigned to the maximum variability, and the basis is right-hand oriented
	
seg2dmat.m

	 SEG2DMAT  Local neighbourhood distance matrix between segmentation voxels
	
skeleton_label.m

	 SKELETON_LABEL  Give each branch of a skeleton a different label, and
	 sort the voxels within each branch.
	
skeleton_plot.m

	 SKELETON_PLOT  Plot a labelled segmentation and its skeleton
	
typicalpsf.m

	 TYPICALPSF  Estimate point spread function from microbeads image
	

ItkToolbox
-------------------------------------------------------------

itk_imfilter.m

	 ITK_IMFILTER  Run ITK filter on a 2D, 3D or 4D image.
	
itk_pstransform.m

	 ITK_PSTRANSFORM: Spatial transformation (i.e. warp) of a set of points,
	 defined from a known landmark correspondence
	
itk_tri_rasterization.m

	 ITK_TRI_RASTERIZATION  Rasterization of triangular mesh to binary
	 segmentation
	

ManifoldToolbox
-------------------------------------------------------------

add_vertex_to_tri.m

	 ADD_VERTEX_TO_TRI  Add vertices to a triangular mesh
	
arclen2chord.m

	 ARCLEN2CHORD  Sphere arc length distances to Euclidean chord length
	 distances.
	
chord2arclen.m

	 CHORD2ARCLEN  Euclidean chord length distances to sphere arc length
	 distances.
	
closest_trifacet.m

	 CLOSEST_TRIFACET  Closest triangular facet of a mesh to a point in 3D
	
congrow.m

	 CONGROW  Grow the local neighbourhoods in a connectivity matrix
	
delaunay_sphere.m

	 DELAUNAY_SPHERE  Triangulation of a sphere or a surface topologically
	 equivalent to a sphere so that it can be used as a mesh
	
dmatrix_con.m

	 DMATRIX_CON  Sparse distance and shortest-path distance matrices between
	 the nodes of a mesh from a connectivity matrix
	
dmatrix_mesh.m

	 DMATRIX_MESH  Sparse distance and shortest-path distance matrices between
	 the nodes of a mesh
	
dmatrix_sphmesh.m

	 DMATRIX_SPHMESH  Sparse great-circle distance and shortest-path distance 
	 matrices between the nodes of a spherical mesh
	
graphcc.m

	 GRAPHCC  Split a graph into connected components.
	
graph_gclosure.m

	 GRAPH_GCLOSURE Geodetic closure of a subset of vertices on a graph.
	
lmdscale.m

	 LMDSCALE  Local neighbourhood Multidimensional scaling on a plane
	
proj_on_sphere.m

	 PROJ_ON_SPHERE  Project a point configuration onto a sphere
	
quadsurf.m

	 QUADSURF  Quadrangular mesh surface plot
	
remove_vertex_from_tri.m

	 REMOVE_VERTEX_FROM_TRI  Remove vertices from a triangular mesh
	
scimat_surface2seg.m

	 scimat_surface2seg  Convert triangular mesh into segmentation.
	
scimat_tri_to_raster.m

	 SCIMAT_TRI_TO_RASTER  Rasterize a closed triangular mesh.
	
smdscale.m

	 SMDSCALE  Local neighbourhood Multidimensional scaling on a sphere
	
sphtri_foldcc.m

	 SPHTRI_FOLDCC  Find connected components of groups of vertices causing a
	 fold on the sphere
	
sphtri_signed_vol.m

	 SPHTRI_SIGNED_VOL  Signed volume of the elements of a sphere partitioned
	 into tetrahedra.
	
sphtri_vertex_istangled.m

	 SPHTRI_VERTEX_ISTANGLED Find tangled vertices in a spherical triangular
	 mesh.
	
surface_interp.m

	 surface_interp  Interpolate an open or closed surface from a parametrized
	 scattered set of points.
	
surface_param.m

	 surface_param  2D parametrization of a scattered set of 3D points or of
	 the vertices of a triangular mesh, for open and closed surfaces.
	
surface_tridomain.m

	 surface_tridomain  Triangular mesh to cover a planar or spherical domain.
	
tri2sphrad.m

	 TRI2SPHRAD  Estimate radius of sphere with same area as triangular mesh.
	
tri_ccqp_smacof_nofold_sph_pip.m

	 TRI_CCQP_SMACOF_NOFOLD_SPH_PIP  Constraints in PIP format for CCQP-SMACOF
	 to ensure that 2D triangules on the sphere preserve positive orientation.
	
triconncomp.m

	 TRICONNCOMP  Find connected components in mesh
	
trifacet_area3D.m

	 TRIFACET_AREA3D  Surface area of triangles in triangular mesh.
	 
	 Function to calculate the surface area of a 3D mesh of triangles. This
	 function uses Heron's forumla to calculate the sides of each triangle.
	 
	 [TOTAL_AREA, AREAS, SIDES] = TRIFACET_AREA3D(FACES, VERTICES)
	  
	   FACES is a 3-column matrix. Each row of FACES contains the indices of
	   one triangle in the mesh.
	
trifacet_signed_area.m

	 TRIFACET_SIGNED_AREA  Signed area of the facets in a 2D triangulation.
	
tri_find_nonmanifold_vertex.m

	 TRI_FIND_NONMANIFOLD_VERTEX  Find indices of non-manifold vertices in a
	 triangular mesh
	
trihemisphere.m

	 TRIHEMISPHERE  Triangular mesh on hemisphere with roughly uniformly
	 distributed points
	
tri_qcqp_smacof_nofold_2d.m

	 TRI_QCQP_SMACOF_NOFOLD_2D  Constraints for QCQP-SMACOF to ensure that a
	 2D triangular mesh has no fold-overs.
	
tri_qcqp_smacof_nofold_2d_pip.m

	 TRI_QCQP_SMACOF_NOFOLD_2D_PIP  Constraints in PIP format for QCQP-SMACOF
	 to ensure that 2D triangules preserve positive orientation.
	
tri_squeeze.m

	 TRI_SQUEEZE  Remove disconnected vertices from triangular mesh
	
vertex_untangle.m

	 VERTEX_UNTANGLE  Find 2D coordinates for a free vertex surrounded
	 by a polygon of fixed counter-clockwise sorted vertices such that the
	 free vertex is untangled.
	

PointsToolbox
-------------------------------------------------------------

bwmesh.m

	 BWMESH  Tetrahedral volumetric and triangular surface mesh of a binary
	 segmentation.
	
cons_smacof_pip.m

	 CONS_SMACOF_PIP  SMACOF algorithm with polynomial constraints (PIP file
	 format).
	
coords_from_dist_gower.m

	 COORDS_FROM_DIST_GOWER  Compute point coordinates from distances to a set
	 of landmarks, as described in Gower (1986)
	
cube_five_tessellation.m

	 CUBE_FIVE_TESSELLATION  Tessellation in 5 tetrahedra of a cube with
	 perpendicular diagonals on opposite sides of the cube (non-stackable)
	
cube_stackable_tessellation.m

	 CUBE_STACKABLE_TESSELLATION  Tessellation in tetrahedra of a cube that
	 can be stacked in a regular mesh
	
dmatrix2coords.m

	 DMATRIX2COORDS  Point coordinates from distance matrix
	
dmatrix.m

	 DMATRIX  Matrix of distances between vectors
	
extmat2rotmat.m

	 EXTMAT2ROTMAT  Convert rotation in extended matrix form into centroid and
	 matrix pair
	
findpeaksn.m

	 FINDPEAKSN  Find local peaks (local maxima) in n-dimensional data
	
gram2dsq.m

	 GRAM2DSQ  Convert Gram matrix to squared distance matrix
	
graph_nn.m

	 GRAPH_NN  Nearest neighbours from a subset of nodes in a graph to another
	 subset
	
intersect_gaussians.m

	 INTERSECT_GAUSSIANS  Intersection of two Gaussians (analytic solution)
	
intersect_line_plane.m

	 INTERSECT_LINE_PLANE  Find intersection of a line with a plane
	
iscollinear.m

	 ISCOLLINEAR  Test to determine whether a set of points are collinear
	
mba_surface_interpolation.m

	 MBA_SURFACE_INTERPOLATION  Scattered data Multilevel B-spline interpolation
	
pca_align.m

	 PCA_ALIGN  Align a set of points so that its centroid is zero, and the
	 Principal Components correspond to the Cartesian axes
	
pca_normalize.m

	 PCA_NORMALIZE  Normalize a set of points so that its centroid is zero,the
	 Principal Components correspond to the Cartesian axes, and the variance
	 (eigenvalue) along each Principal Component is one
	
plotaxes.m

	 PLOTAXES  Plot axes of 3D coordinate system
	
plot_dmatrix.m

	 PLOT_DMATRIX  Plot the connections implied by a distance matrix
	
polardecomp.m

	 POLARDECOMP  Polar decomposition of a square complex matrix
	
polycenter.m

	 POLYCENTER  Compute center of mass and area of polygon
	
pts_cn.m

	 PTS_CN  Center and normalize sets of points
	
pts_kmat.m

	 PTS_KMAT  Compute kernel matrix for Linear and Kernel Principal Component
	 Analysis (PCA and KPCA)
	
pts_local_rigid.m

	 PTS_LOCAL_RIGID  Non-rigid transformation that is locally rigid between
	 two sets of points with known correspondence
	
pts_mesh.m

	 PTS_MESH  Tetrahedral volumetric and triangular surface mesh of a cloud
	 of points.
	
pts_pca.m

	 PTS_PCA  Linear and Kernel Principal Component Analysis (PCA and KPCA)
	
pts_procrustes_gen.m

	 PTS_PROCRUSTES_GEN Generalized Least-Squares Fit Orthogonal Procrustes
	 Analysis
	
pts_procrustes.m

	 PTS_PROCRUSTES Least-Squares Fit Orthogonal Procrustes Analysis between
	 two sets of points
	
pts_rotmat.m

	 PTS_ROTMAT  Compute rotation matrix to minimize least squares error
	
pts_simil_map.m

	 PTS_SIMIL_MAP  Apply similarity transformation to points
	
pts_simil_map_params.m

	 PTS_SIMIL_MAP_PARAMS  Compute similarity transformation parameters
	 between sets of points with unknown correspondence (Procrustes is used)
	
pts_tps_map.m

	 PTS_TPS_MAP  Interpolate/warp/map N-dimensional points using a thin-plate
	 spline transformation
	
pts_tps_weights.m

	 PTS_TPS_WEIGHTS  Compute weights and affine parameters of thin-plate
	 spline warp for N-dimensional points
	
qcqp_smacof.m

	 QCQP_SMACOF  Scaling by MAjorizing a COnvex Function (SMACOF) algorithm
	 posed as a Quadratic Program with Quadratic Constraints (QPQC).
	
quaternion2matrix.m

	 QUATERNION2MATRIX  Convert quaternion to rotation matrix
	
rotmat2extmat.m

	 ROTMAT2EXTMAT  Convert centroid and rotation matrix pair to extended
	 matrix form
	
scimat_dmatrix_imgeodesic.m

	 SCIMAT_DMATRIX_IMGEODESIC  Compute a distance/adjacency matrix for a set
	 of scattered points using the image intensity to approximate the
	 geodesics
	
scimat_dmatrix_thickslice.m

	 SCIMAT_DMATRIX_THICKSLICE  Compute a distance/adjacency matrix for a
	 segmentation that consists of scattered points in slices wide apart.
	
scimat_pca.m

	 SCIMAT_PCA Principal Principal Component Analysis of the selected points
	 in a SCIMAT segmentation mask.
	
scimat_simlandmarks_thickslice.m

	 SCIMAT_SIMLANDMARKS_THICKSLICE  Simulate a human placing landmarks on the
	 boundary of a "thick slice" segmentation.
	
smacof.m

	 SMACOF  Classic implementation of SMACOF (Scaling by MAjorizing a COnvex
	 Function) algorithm for MDS (Multidimensional Scaling)
	
sparse_breakdown.m

	 SPARSE_BREAKDOWN  Extract internal arrays from sparse matrix
	
thickslice_collate_sax_la.m

	 THICKSLICE_COLLATE_SAX_LA  Build a distance/adjacency matrix collating
	 points from a Long Axis plane to a set of Short Axis planes
	
triuvec.m

	 triuvec  Extract upper triangular part into vector form.
	
vec2rotmat.m

	 VEC2ROTMAT  Compute rotation matrix from Cartesian vector
	

RegistrationToolbox
-------------------------------------------------------------

regdemons3d.m

	 REGDEMONS Image registration using Thirion's Demons algorithm.
	
regdemons.m

	 REGDEMONS Image registration using Thirion's Demons algorithm.
	
regmatchedfilt.m

	 REGMATCHEDFILT  Matched filter registration for translation and rotation.
	

ThirdPartyToolbox
-------------------------------------------------------------

alphavol.m

	 ALPHAVOL Alpha shape of 2D or 3D point set.
	
bwdistsc.m

	 D=BWDISTSC(BW,ASPECT)
	 BWDISTSC computes Euclidean distance transform of a binary 3D image BW. 
	 Distance transform assigns to each pixel in BW a number that is the 
	 distance from that pixel to the nearest nonzero pixel in BW. BWDISTSC
	 can accept a regular 2D image, a 3D array, and a cell array of 2D slices. 
	 ASPECT is a 3-component vector defining the voxel-aspect-ratio for BW. 
	 If ASPECT is not given, [1 1 1] isotropic aspect ratio is assumed.
	
dijkstra.m

	 DIJKSTRA  Shortests path tree from sparse matrix graph
	
gplot3d.m

	GPLOT3D Plot graph, as in "graph theory". This is a modification of
	MATLAB's GPLOT function for vertices in 3D
	
gridfit.m

	 gridfit: estimates a surface on a 2d grid, based on scattered data
	          Replicates are allowed. All methods extrapolate to the grid
	          boundaries. Gridfit uses a modified ridge estimator to
	          generate the surface, where the bias is toward smoothness.
	 
	          Gridfit is not an interpolant. Its goal is a smooth surface
	          that approximates your data, but allows you to control the
	          amount of smoothing.
	
inhull.m

	 inhull: tests if a set of points are inside a convex hull
	 usage: in = inhull(testpts,xyz)
	 usage: in = inhull(testpts,xyz,tess)
	 usage: in = inhull(testpts,xyz,tess,tol)
	
IsomapII.m

	 ISOMAPII   Computes Isomap embedding using an advanced version of
	             the algorithm in Tenenbaum, de Silva, and Langford (2000), 
	             which can take advantage of sparsity in the graph and 
	             redundancy in the distances. 
	
Isomap.m

	 ISOMAP   Computes Isomap embedding using the algorithm of 
	             Tenenbaum, de Silva, and Langford (2000). 
	
L2_distance.m

	 L2_DISTANCE - computes Euclidean distance matrix
	
loaddcmdir.m

	function [dcmSeries, dcmPatient, SeriesList, SeriesListNumInfo, ImageInfos, SeriesInfos] = loaddcmdir(dicomdirpath)
	
pointTriangleDistance.m

	 POINTTRIANGLEDISTANCE  Calculate distance between a point and a triangle
	 in 3D
	
rotateXLabels.m

	rotateXLabels: rotate any xticklabels
	
sphereFit.m

tiff_read_header.m

	 This function tiff_read_header can be used to read the header(s) of
	 complex tiff files. It implements a part of the Tiff version 5 and 6
	 specifications.
	
tightfig.m


ThirdPartyToolbox/Conv2FFTToolbox
-------------------------------------------------------------

conv_fft2.m

	CONV_FFT2 Two dimensional convolution via the FFT.
	   Y = CONV_FFT2(X, M) performs the 2-D convolution of matrices X and M.
	   If [mx,nx] = size(X) and [mm,nm] = size(M), then size(Y) =
	   [mx+mm-1,nx+nm-1]. Values near the boundaries of the output array are
	   calculated as if X was surrounded by a border of zero values.
	
exindex.m

	EXINDEX extended array indexing
	   ARROUT = EXINDEX(ARRIN, S1, S2, ...) indexes a virtual array made by
	   extending ARRIN with zeros in all directions, using subscripts S1, S2
	   etc.
	

ThirdPartyToolbox/ExportFigureToolbox
-------------------------------------------------------------

append_pdfs.m

	APPEND_PDFS Appends/concatenates multiple PDF files
	
copyfig.m

	COPYFIG Create a copy of a figure, without changing the figure
	
crop_borders.m

	CROP_BORDERS Crop the borders of an image or stack of images
	
eps2pdf.m

	EPS2PDF  Convert an eps file to pdf format using ghostscript
	
export_fig.m

	EXPORT_FIG  Exports figures in a publication-quality format
	
fix_lines.m

	FIX_LINES  Improves the line style of eps files generated by print
	
ghostscript.m

	GHOSTSCRIPT  Calls a local GhostScript executable with the input command
	
im2gif.m

	IM2GIF Convert a multiframe image to an animated GIF file
	
isolate_axes.m

	ISOLATE_AXES Isolate the specified axes in a figure on their own
	
pdf2eps.m

	PDF2EPS  Convert a pdf file to eps format using pdftops
	
pdftops.m

	PDFTOPS  Calls a local pdftops executable with the input command
	
print2array.m

	PRINT2ARRAY  Exports a figure to an image array
	
print2eps.m

	PRINT2EPS  Prints figures to eps with improved line styles
	
read_write_entire_textfile.m

	READ_WRITE_ENTIRE_TEXTFILE Read or write a whole text file to/from memory
	
user_string.m

	USER_STRING  Get/set a user specific string
	
using_hg2.m

	USING_HG2 Determine if the HG2 graphics engine is used
	

ThirdPartyToolbox/FastMarchingToolbox
-------------------------------------------------------------

batch_landmarks_error.m

batch_propagation_mesh.m

batch_shape_meshing.m

callback_active_contour.m

compile_mex.m

compute_alpha_map.m

compute_bending_invariant.m

compute_distance_landmark.m

compute_eccentricity_transform.m

compute_edge_energy.m

compute_geodesic.m

compute_geodesic_mesh.m

compute_heuristic_landmark.m

compute_heuristic_multiresolution.m

compute_levelset_shape.m

compute_saddle_points.m

compute_shape_boundary.m

compute_voronoi_triangulation.m

compute_voronoi_triangulation_mesh.m

content.m

	 Toolbox Fast Marching - A toolbox for Fast Marching and level sets computations
	
convert_distance_color.m

display_eccentricity.m

display_segmentation.m

divgrad.m

eucdist2.m

	EUCDIST2 Compute 2-D Euclidean distance transform.
	   D = EUCDIST2(BW) computes the Euclidean distance transform on the input 
	   binary image BW, which must be 2-D.  Specifically, it computes the
	   distance to the nearest nonzero-valued pixel.
	    
	   [D,L] = EUCDIST2(BW) returns a linear index array L representing a
	   nearest-neighbor map.  L(r,c) is the linear index of the nonzero-valued
	   element of BW closest to (r,c).
	
generate_constrained_map.m

load_potential_map.m

perform_active_contour.m

perform_circular_fast_marching_2d.m

perform_farthest_landmark_sampling.m

perform_farthest_point_sampling_boundary.m

perform_farthest_point_sampling.m

perform_farthest_point_sampling_mesh.m

perform_fast_marching.m

perform_fast_marching_mesh.m

perform_fast_marching_old.m

perform_fmstar_2d.m

perform_fmstar_3d.m

perform_front_propagation_2d.m

perform_front_propagation_2d_slow.m

perform_geodesic_interpolation.m

perform_lloyd_mesh.m

perform_redistancing.m

pick_curves.m

pick_start_end_point.m

plot_constrained_path_planing.m

plot_fast_marching_2d.m

plot_fast_marching_3d.m

plot_fast_marching_mesh.m

plot_volumetric_data.m

publish_html.m

toolbox_fast_marching.m

vol3d.m

	H = VOL3D Volume render 3-D data. 
	 VOL3D uses the orthogonal plane 2-D texture mapping technique for 
	 volume rending 3-D data in OpenGL. Use the 'texture' option to fine 
	 tune the texture mapping technique. This function is best used with
	 fast OpenGL hardware.
	

ThirdPartyToolbox/GraphToolbox
-------------------------------------------------------------

adjacency2incidence.m

adjmatrix2list.m

batch_levelsets_meshes.m

build_euclidean_weight_matrix.m

build_graph_from_image.m

check_face_vertex.m

check_incircle_edge.m

check_incircle.m

compile_mex.m

compute_boundary.m

compute_combinatorial_laplacian.m

compute_curvature.m

compute_delaunay.m

compute_diffusion_geometry.m

compute_diffusion_kernel.m

compute_distance_graph.m

compute_dual_graph.m

compute_edge_face_ring.m

compute_edges.m

compute_face_ring.m

compute_geometric_laplacian.m

compute_laplacian_curve.m

compute_levelset_mesh.m

compute_mesh_gradient.m

compute_mesh_laplacian.m

compute_mesh_local_covariance.m

compute_mesh_weight.m

compute_normal.m

compute_orthocenter.m

compute_orthoproj_triangulation.m

compute_parameterization.m

compute_rotation.m

compute_semidual_graph.m

compute_traveling_salesman.m

compute_triangulation_angles.m

compute_vertex_face_ring.m

compute_vertex_ring.m

compute_voronoi_mesh.m

content.m

	 Toolbox graph - A toolbox to process graph and triangulated meshes
	
convert_gim2mesh.m

griddata_arbitrary.m

incidence2adjacency.m

load_gim.m

load_graph.m

mesh_flip_faces.m

mesh_previewer.m

mesh_wrapper.m

metro_wrapper.m

perform_delaunay_flipping.m

perform_dijkstra.m

perform_dijkstra_path_extraction.m

perform_dijkstra_propagation.m

perform_dijkstra_propagation_old.m

perform_dijkstra_propagation_slow.m

perform_faces_reorientation.m

perform_floyd_algorithm.m

perform_lloyd_iteration.m

perform_mesh_heat_diffusion.m

perform_mesh_simplification.m

perform_mesh_smoothing.m

perform_normal_displacement.m

perform_point_picking.m

perform_saturation.m

perform_triangle_flipping.m

plot_dijkstra.m

plot_edges.m

plot_geometry_image.m

plot_graph.m

plot_mesh.m

plot_silouhette.m

plot_spherical_triangulation.m

progressive_mesh.m

publish_html.m

qslim.m

	QSLIM - Mesh simplification, wrapper function for Garland's QSLIM executable program
	 function [NFV,smf_fname] = qslim(FV,varargin);
	 varargin should be entered in pairs '<option>','<arg>'.
	 Valid pairs used in this wrapper are:
	
read_gim.m

read_mesh.m

read_mfile.m

read_obj.m

read_off.m

read_ply.m

read_smf.m

read_tet.m

read_vtk.m

read_wrl.m

reverse_orientation.m

select3d.m

	SELECT3D(H) Determines the selected point in 3-D data space.
	  P = SELECT3D determines the point, P, in data space corresponding 
	  to the current selection position. P is a point on the first 
	  patch or surface face intersected along the selection ray. If no 
	  face is encountered along the selection ray, P returns empty.
	
tet2tri.m

toolbox_graph.m

	 toolbox_graph - a toolbox for graph manipulation and plotting.
	
triangulate.m

	 triangulate - interface to 'triangle' library. 
	
triangulation2adjacency.m

triangulation_isequal.m

write_gim.m

write_mesh.m

write_obj.m

write_off.m

write_ply.m

write_smf.m

write_wrl.m


ThirdPartyToolbox/ImGaussianToolbox
-------------------------------------------------------------

imgaussian.m


ThirdPartyToolbox/InfoTheoryToolbox
-------------------------------------------------------------

conditionalEntropy.m

entropy.m

jointEntropy.m

mutualInformation.m

nmi.m

nvi.m

relativeEntropy.m


ThirdPartyToolbox/Iso2meshToolbox
-------------------------------------------------------------

advancefront.m

	
bbxflatsegment.m

	
binsurface.m

	
bwislands.m

	
cgals2m.m

	
cgalv2m.m

	
deislands2d.m

	
deislands3d.m

	
delendelem.m

	
deletemeshfile.m

	
edgeneighbors.m

	
elemvolume.m

	
extractloops.m

	
faceneighbors.m

	
fallbackexeext.m

	
fillholes3d.m

	
finddisconnsurf.m

	
flatsegment.m

	
getexeext.m

	
getintersecttri.m

	
getoptkey.m

	
getplanefrom3pt.m

	
getvarfrom.m

	
imedge3d.m

	
internalpoint.m

	
iso2meshver.m

	
isoctavemesh.m

jsonopt.m

	
latticegrid.m

	
loadjson.m

	
loadubjson.m

	
m2v.m

	
maxsurf.m

	
mcpath.m

	
mergemesh.m

	
mergestruct.m

	
mergesurf.m

	
mesh2mask.m

	
mesh2vol.m

	
meshabox.m

	
meshacylinder.m

	
meshanellip.m

	
meshasphere.m

	
meshcentroid.m

	
meshcheckrepair.m

	
meshconn.m

	
meshedge.m

	
mesheuler.m

	
meshgrid5.m

	
meshgrid6.m

	
meshquality.m

	
meshrefine.m

	
meshreorient.m

	
meshresample.m

	
meshunitsphere.m

	
mwpath.m

	
neighborelem.m

	
nodevolume.m

	
orderloopedge.m

	
orthdisk.m

	
plotedges.m

	
plotmesh.m

	
plotsurf.m

	
plottetra.m

	
qmeshcut.m

	
raysurf.m

	
raytrace.m

	
readasc.m

	
readgts.m

	
readinr.m

	
readmedit.m

	
readoff.m

	
readsmf.m

readtetgen.m

	
remeshsurf.m

	
removedupelem.m

	
removedupnodes.m

	
removeisolatednode.m

	
removeisolatedsurf.m

	
rotatevec3d.m

	
rotmat2vec.m

	
s2m.m

	
s2v.m

	
saveabaqus.m

	
saveasc.m

	
savebinstl.m

	
savedxf.m

	
savegts.m

	
saveinr.m

	
savejmesh.m

	
savejson.m

	
savemedit.m

	
savemphtxt.m

	
savemsh.m

	
saveoff.m

	
savesmf.m

	
savestl.m

	
savesurfpoly.m

	
savetetgenele.m

	
savetetgennode.m

	
saveubjson.m

	
savevrml.m

	
smoothbinvol.m

	
smoothsurf.m

	
sms.m

	
sortmesh.m

	
struct2jdata.m

	
surf2mesh.m

	
surf2vol.m

	
surf2volz.m

	
surfaceclean.m

	
surfacenorm.m

	
surfboolean.m

	
surfdiffuse.m

	
surfedge.m

	
surfinterior.m

	
surfpart.m

	
surfplane.m

	
surfreorient.m

	
surfseeds.m

	
thickenbinvol.m

	
thinbinvol.m

	
uniqedges.m

	
v2m.m

	
v2s.m

	
varargin2struct.m

	
vol2mesh.m

	
vol2restrictedtri.m

	
vol2surf.m

	
volface.m

	
volmap2mesh.m

	

ThirdPartyToolbox/Mirt3DMexinterpToolbox
-------------------------------------------------------------

mirt3D_mexinterp.m

	MIRT3D_MEXINTERP  Fast 3D linear interpolation 
	  
	 Output_image = mirt3D_mexinterp(Input_image, XI,YI,ZI) interpolates the 3D image 'Input_image' at
	    the points with coordinates X,Y,Z. Input_image is assumed to  be defined at a regular grid 1:N, 1:M, 1:K, 
	    where [M,N,K]=size(Input_images). Points outside the boudary return NaNs. 
	    This is equivalent (but much faster) to Matlab's:
	    Output_image = interp3(Input_image,XI,YI,ZI,'linear',NaN);
	  
	 Output_images = mirt3D_mexinterp(Input_images, XI,YI,ZI). Input_images can be a stack of many 3D images (4D).
	   The function interpolates each of the 3D images at X,Y,Z coordinates and return a stack of corresponding
	   interpolated images. This is equivalent to Matlab's
	 
	   Input_images(:,:,:,1)=Input_image1;
	   Input_images(:,:,:,2)=Input_image2;
	   Input_images(:,:,:,3)=Input_image3;
	   Input_images(:,:,:,4)=Input_image4;
	  
	   Output_images(:,:,:,1) = interp3(Input_image1,XI,YI,ZI,'linear',NaN);
	   Output_images(:,:,:,2) = interp3(Input_image2,XI,YI,ZI,'linear',NaN);
	   Output_images(:,:,:,3) = interp3(Input_image3,XI,YI,ZI,'linear',NaN);
	   Output_images(:,:,:,4) = interp3(Input_image4,XI,YI,ZI,'linear',NaN);
	 
	  This is especially usefull fpr vector valued 3D images, RGB images, to interpolate the whole 3D video at the same coordinates
	  or to interpolate image and its gradients at the same time (in image registration).
	  The speed gain is also from the precomputation of nearest points for interpolation, which are the same for all images in a stack.
	

ThirdPartyToolbox/niftiToolbox
-------------------------------------------------------------

affine.m

	  Using 2D or 3D affine matrix to rotate, translate, scale, reflect and
	  shear a 2D image or 3D volume. 2D image is represented by a 2D matrix,
	  3D volume is represented by a 3D matrix, and data type can be real 
	  integer or floating-point.
	
bipolar.m

	BIPOLAR returns an M-by-3 matrix containing a blue-red colormap, in
		in which red stands for positive, blue stands for negative, 
		and white stands for 0.
	
bresenham_line3d.m

	  Generate X Y Z coordinates of a 3D Bresenham's line between
	  two given points.
	
clip_nii.m

	  CLIP_NII: Clip the NIfTI volume from any of the 6 sides
	
collapse_nii_scan.m

	  Collapse multiple single-scan NIFTI files into a multiple-scan NIFTI file
	
expand_nii_scan.m

	  Expand a multiple-scan NIFTI file into multiple single-scan NIFTI files
	
extra_nii_hdr.m

	  Decode extra NIFTI header information into hdr.extra
	
flip_lr.m

	  When you load any ANALYZE or NIfTI file with 'load_nii.m', and view
	  it with 'view_nii.m', you may find that the image is L-R flipped.
	  This is because of the confusion of radiological and neurological
	  convention in the medical image before NIfTI format is adopted. You
	  can find more details from:
	
get_nii_frame.m

	  Return time frame of a NIFTI dataset. Support both *.nii and 
	  *.hdr/*.img file extension. If file extension is not provided,
	  *.hdr/*.img will be used as default. 
	
load_nii_ext.m

	  Load NIFTI header extension after its header is loaded using load_nii_hdr.
	
load_nii_hdr.m

load_nii_img.m

load_nii.m

	  Load NIFTI or ANALYZE dataset. Support both *.nii and *.hdr/*.img
	  file extension. If file extension is not provided, *.hdr/*.img will
	  be used as default.
	
load_untouch0_nii_hdr.m

load_untouch_header_only.m

	  Load NIfTI / Analyze header without applying any appropriate affine
	  geometric transform or voxel intensity scaling. It is equivalent to
	  hdr field when using load_untouch_nii to load dataset. Support both
	  *.nii and *.hdr file extension. If file extension is not provided,
	  *.hdr will be used as default.
	  
	  Usage: [header, ext, filetype, machine] = load_untouch_header_only(filename)
	  
	  filename - NIfTI / Analyze file name.
	  
	  Returned values:
	  
	  header - struct with NIfTI / Analyze header fields.
	  
	  ext - NIfTI extension if it is not empty.
	  
	  filetype	- 0 for Analyze format (*.hdr/*.img);
			  1 for NIFTI format in 2 files (*.hdr/*.img);
			  2 for NIFTI format in 1 file (*.nii).
	  
	  machine    - a string, see below for details. The default here is 'ieee-le'.
	
load_untouch_nii_hdr.m

load_untouch_nii_img.m

load_untouch_nii.m

	  Load NIFTI or ANALYZE dataset, but not applying any appropriate affine
	  geometric transform or voxel intensity scaling.
	
make_ana.m

	  Make ANALYZE 7.5 data structure specified by a 3D or 4D matrix.
	  Optional parameters can also be included, such as: voxel_size, 
	  origin, datatype, and description. 
	  
	  Once the ANALYZE structure is made, it can be saved into ANALYZE 7.5 
	  format data file using "save_untouch_nii" command (for more detail, 
	  type: help save_untouch_nii). 
	  
	  Usage: ana = make_ana(img, [voxel_size], [origin], [datatype], [description])
	
make_nii.m

	  Make NIfTI structure specified by an N-D matrix. Usually, N is 3 for 
	  3D matrix [x y z], or 4 for 4D matrix with time series [x y z t]. 
	  Optional parameters can also be included, such as: voxel_size, 
	  origin, datatype, and description. 
	  
	  Once the NIfTI structure is made, it can be saved into NIfTI file 
	  using "save_nii" command (for more detail, type: help save_nii). 
	  
	  Usage: nii = make_nii(img, [voxel_size], [origin], [datatype], [description])
	
mat_into_hdr.m

	MAT_INTO_HDR  The old versions of SPM (any version before SPM5) store
		an affine matrix of the SPM Reoriented image into a matlab file 
		(.mat extension). The file name of this SPM matlab file is the
		same as the SPM Reoriented image file (.img/.hdr extension).
	
reslice_nii.m

	  The basic application of the 'reslice_nii.m' program is to perform
	  any 3D affine transform defined by a NIfTI format image.
	
rri_file_menu.m

	  Imbed a file menu to any figure. If file menu exist, it will append
	  to the existing file menu. This file menu includes: Copy to clipboard,
	  print, save, close etc.
	
rri_orient.m

	  Convert image of different orientations to standard Analyze orientation
	
rri_orient_ui.m

rri_select_file.m

	
rri_xhair.m

	   rri_xhair: create a pair of full_cross_hair at point [x y] in
	              axes h_ax, and return xhair struct
	
rri_zoom_menu.m

	  Imbed a zoom menu to any figure.
	
save_nii_ext.m

	  Save NIFTI header extension.
	
save_nii_hdr.m

save_nii.m

	  Save NIFTI dataset. Support both *.nii and *.hdr/*.img file extension.
	  If file extension is not provided, *.hdr/*.img will be used as default.
	  
	  Usage: save_nii(nii, filename, [old_RGB])
	  
	  nii.hdr - struct with NIFTI header fields (from load_nii.m or make_nii.m)
	
save_untouch0_nii_hdr.m

save_untouch_nii_hdr.m

save_untouch_nii.m

	  Save NIFTI or ANALYZE dataset that is loaded by "load_untouch_nii.m".
	  The output image format and file extension will be the same as the
	  input one (NIFTI.nii, NIFTI.img or ANALYZE.img). Therefore, any file
	  extension that you specified will be ignored.
	
save_untouch_slice.m

	  Save back to the original image with a portion of slices that was
	  loaded by "load_untouch_nii". You can process those slices matrix
	  in any way, as long as their dimension is not altered.
	
unxform_nii.m

	  Undo the flipping and rotations performed by xform_nii; spit back only
	  the raw img data block. Initial cut will only deal with 3D volumes
	  strongly assume we have called xform_nii to write down the steps used 
	  in xform_nii.
	
verify_nii_ext.m

	  Verify NIFTI header extension to make sure that each extension section
	  must be an integer multiple of 16 byte long that includes the first 8
	  bytes of esize and ecode. If the length of extension section is not the
	  above mentioned case, edata should be padded with all 0.
	
view_nii.m

	  VIEW_NII: Create or update a 3-View (Front, Top, Side) of the 
		brain data that is specified by nii structure
	
view_nii_menu.m

	  Imbed Zoom, Interp, and Info menu to view_nii window.
	
xform_nii.m


ThirdPartyToolbox/OptiToolbox
-------------------------------------------------------------

opti_Install.m


ThirdPartyToolbox/SpharmToolbox
-------------------------------------------------------------

align_cps.m

	 Goal: Align P to X using ICP

align_CPS_SHREC.m


align_FOE.m


align_icp.m

	 Goal: Align P to X using ICP

calc_asr.m


calc_STPS.m


calc_triangle_areas.m


calculate_SPHARM_basis.m

	 Goal: Create canonical spherical harmonic bases

conv2bim.m

	 Goal: 

create_SPHARM_des_LSF.m


dispOptions.m


do_pca.m


extractSignals.m


extract_surface.m

	 Goal: Extract surface data (vertices and faces) from a binary object

fill3dholes.m


fix_bad_topology.m

	 Goal: Fix a binary image by removing bad connectivities

fixed_fvec.m


FLD.m

	 Goal: 

gen_surf_data.m


get_vertexnormals.m


gipl_read_header.m


gipl_read_volume.m


gipl_write_volume.m


initOptions.m


initParamCALD.m


load_nii_hdr.m


load_nii_img.m


load_nii.m


LoadObjList.m


loadOptions.m


match_cps.m


match_icp.m


match_param_hie.m


match_param.m


NIfTI2bim.m

	 Goal: Convert NIfTI image to bim format

patch_color.m

	 Goal: surface rendering with color

patch_colormesh.m

	 Goal: surface rendering with color

patch_lighta.m

	 Goal: surface rendering with lighting

patch_light.m

	 Goal: surface rendering with lighting

patch_lightmesh.m

	 Goal: surface rendering with lighting

patch_mesh.m

	 Goal: surface mesh rendering

patch_overlay.m


patch_shademesh.m

	 Goal: surface shaded mesh rendering

performHKsmooth.m

	 Goal: Heat kernal smoothing, preprocessing for t-test

performPCA.m


performTstat.m


project_PCA.m


read_coef.m


read_gipl.m


read_meta.m


readM.m


readSTL.m


rotate_mat.m


rotate_param_m03.m

	 Goal: rotating parameter space

sample_euler_angle.m


sample_Param_Space.m

	 Goal: 

saveOptions.m


shrec_kth_itr.m


smootheCALD.m


SpharmMatAlignment.m


SpharmMatDisplayStat.m


SpharmMatExpandAlignByPDM.m


SpharmMatExpansion.m


SPHARM_MAT.m


SpharmMatParameterization.m


SpharmMatParamTriaMesh.m


SpharmMatStatAnalysis.m


SpharmMatUtilAverageObjs.m


SpharmMatUtilBatchJobs.m


SpharmMatUtilDisplayObjs.m


SpharmMatUtilFormatConvert.m


SpharmMatUtilImportObjs.m


SpharmMatUtilScaleObjs.m


SpharmMatUtilTopologyFix.m


SPHARM_rmsd_batch.m


SPHARM_rmsd.m


stlreadASCII.m


stlreadBIN.m


surf_spharm.m


updateOptions.m


utl_eas.m

	 Goal: create euler angle samples

utl_sgm.m

	 Goal: create signmatrix

write_coef.m


write_gipl.m


write_metaNcoef.m


write_meta_quad.m


write_meta_tri.m


write_procalign.m


write_surfNpara.m


xform_nii.m


amira_r_hipp_surf.m



ThirdPartyToolbox/SphereUniformSamplingToolbox
-------------------------------------------------------------

IcosahedronMesh.m

ParticleSampleSphere.m

	 Create an approximately uniform triangular tessellation of the unit 
	 sphere by minimizing generalized electrostatic potential energy 
	 (aka Reisz s-energy) of the system of charged particles. Effectively, 
	 this function produces a locally optimal solution to the problem that 
	 involves finding a minimum Reisz s-energy configuration of N equal 
	 charges confined to the surface of the unit sphere (s=1 corresponds to 
	 the problem originally posed by J. J. Thomson). 
	
RandSampleSphere.m

	 Generate a uniform or stratified sampling of a unit sphere.
	
SubdivideSphericalMesh.m

	 Subdivide triangular mesh representing the surface of the unit sphere
	 k times using triangular quadrisection (see function TriQuad for more 
	 info). The newly inserted vertices are re-projected onto the unit sphere
	 after every iteration.
	
TriQuad.m

	 Subdivide triangular mesh using triangular quadrisection. During this
	 operation new vertices are inserted at the edge midpoints thereby 
	 producing four new faces for every face of the original mesh. 
	 Illustration of this operation is provided below:
	 
	                     x3                        x3
	                    /  \      subdivision     /  \
	                   /    \         -->        v3__v2
	                  /      \                  / \  / \
	                x1________x2              x1___v1___x2
	

ThirdPartyToolbox/SphericalTrigToolbox
-------------------------------------------------------------

aaad.m

	AAAD  gives both solutions to the angle-angle-angle problem, in degrees.
	
aaa.m

	AAA  gives both solutions to the angle-angle-angle problem, in radians.
	
aasd.m

	AASD   gives both solutions to the angle-angle-side problem, in degrees.
	
aas.m

	AAS   gives both solutions to the angle-angle-side problem, in radians.
	
acos2d.m

	ACOS2D      4-quadrant arccosine function, in degrees. 
	
acos2.m

	ACOS2      4-quadrant arccosine function, in radians. 
	
asad.m

	ASAD   gives both solutions to the angle-side-angle problem, in degrees.
	
asa.m

	ASA   gives both solutions to the angle-side-angle problem, in radians.
	
sasd.m

	SASD   gives both solutions to the side-angle-side problem, in degrees.
	
sas.m

	SAS   gives both solutions to the side-angle-side problem, in radians.
	
ssad.m

	SSAD  gives both solutions to the side-side-angle problem, in degrees.
	
ssa.m

	SSA   gives both solutions to the side-side-angle problem, in radians.
	
sssd.m

sss.m

	SSS   gives both solutions to the side-side-side problem, in radians.
	

ThirdPartyToolbox/sphsplineToolbox
-------------------------------------------------------------

sphsplinetc.m

	 SPHSPLINETC Gridding using a spherical surface spline in tension
	
sphsplinet.m

	 SPHSPLINET  Gridding using a spherical surface spline in tension
	
SSSTc.m

	 SSSTc  Spherical Surface Spline in Tension (C mex version)
	
SSSTgradc.m

	 SSSTgradc  Spherical Surface Spline in Tension gradient (C Mex version)
	
SSSTgrad.m

	 SSSTgrad  Spherical Surface Spline in Tension gradient
	
SSST.m

	 SSST  Spherical Surface Spline in Tension
	
WB_lookup.m


ThirdPartyToolbox/TiffreadToolbox
-------------------------------------------------------------

image_background.m

	 IMAGE_BRACKGROUND Automatically find the pixel-value of the background,
	 for images that are predominantly black
	
image_histogram.m

	 IMAGE_HISTOGRAM  Calculate the histogram of the given image
	
show_image.m

	 SHOW_IMAGE  Display picture in 16-bit gray levels
	
show_stack.m

	 SHOW_STACK  Display movie frames with a slider and autoscaling
	
tiffread.m

	 TIFFREAD  Reads 8,16,32 bits uncompressed grayscale and (some) color tiff
	 files, as well as stacks or multiple tiff images, for example those
	 produced by metamorph, Zeiss LSM or NIH-image
	

ThirdPartyToolbox/TriangleRayIntersectionToolbox
-------------------------------------------------------------

PointInsideVolume.m

TriangleRayIntersection.m

TriangleRayIntersection_tutorial.m


