Help for slice_overlay script

This is just the help documentation from the slice_overlay routine, described in the DisplaySlices page. The same help results from typing help slice_overlay at the matlab prompt.

Function to display + manage slice display 
Slice display works on a global structure SO
with fields 
 - img - array of images to display
       - img structs contain fields
            type - one of {'truecolour' 'split', 'contour'};
                  truecolour - displays transparent (see prop) image 
                     overlaid with any previous
                  split - in defined area, replaces image present (SPM
                     type activation display)
                  contour - contour map of image overlaid.  See help
                     for contours function in matlab
            vol - vol struct info (see spm_vol)
                  can also be vol containing image as 3d matrix
                  set with slice_overlay('AddBlobs'...) call
            cmap - colormap for this image
            nancol - color for NaN. If scalar, this is an index into
                   the image cmap.  If 1x3 vector, it's a colour
            prop - proportion of intensity for this cmap/img 
            func - function to apply to image before scaling to cmap
                   (and therefore before min/max thresholding. E.g. a func of
                   'i1(i1==0)=NaN' would convert zeros to NaNs
            range - 2x1 vector of values for image to distribute colormap across
                   the first row of the colormap applies to the first
                   value in 'range', and the last value to the second
                   value in 'range'
            outofrange - behavior for image values to the left and
                   right of image limits in 'range'.  Left means
                   colormap values < 1, i.e for image values <
                   range(1), if (range(1)<range(2)), and image values >
                   range(1) where (range(1)>range(2)). If missing,
                   display min (for Left) and max (for Right) value from colormap. 
                   Otherwise should be a 2 element cell array, where
                   the first element is the colour value for image values
                   left of 'range', and the second is for image values
                   right of 'range'.  Scalar values for
                   colour index the colormap, 3x1 vectors are colour
                   values.  An empty array attracts default settings
                   appropriate to the mode - i.e. transparent colour (where 
                   SO.type is truecolour), or split colour.  Empty cells
                   default to 0. 0 specifies that voxels with this
                   colour do not influence the image (split =
                   background, true = black)
           hold  - resampling order for image (see spm_sample_vol) -
                   default 1
           background - value when resampling outside image - default
                   NaN
           linespec - string, applies only to contour map,
                   e.g. 'w-' for white continuous lines
           contours - vector, applies to contour map only, defines 
                   values in image for which to show contours 
                   (see help contours)
           linewidth - scalar, width in points of contour lines
           
- transform - either - 4x4 transformation to apply to image slice position,
            relative to mm given by slicedef, before display
              or     - text string, one of axial, coronal, sagittal
                       These orientations assume the image is currently
                       (after its mat file has been applied) axially
                       oriented
- slicedef - 2x3 array specifying dimensions for slice images in mm
            where rows are x,and y of slice image, and cols are neg max dim,
            slice separation and pos max dim
- slices   - vector of slice positions in mm in z (of transformed image)
- figure    - figure handle for slice display figure
- refreshf  - flag - if set or empty, refresh axis info for figure
            else assume this is OK
- clf       - flag, non zero -> clear figure before display.  Redundant
              if refreshf == 0
- area      struct with fields
                 position - bottom left, x size y size 1x4 vector of
                     area in which to display slices
                 units    - one of
                   inches,centimeters,normalized,points,{pixels}
                 halign - one of left,{center},right
                 valign - one of top,{middle},bottom
- xslices  - no of slices to display across figure (defaults to an optimum)
- cbar      - if empty, missing, no colourbar.  If an array of integers, then 
            indexes img array, and makes colourbar for each cmap for
            that img.  Cbars specified in order of appearance L->R
- labels - struct can be absent (-> default numerical labels)
                 empty (SO.labels = []) (no labels) or contain fields 
                 colour - colour for label text 
                 size - font size in units normalized to slice axes 
                 format - if = cell array of strings =
                 labels for each slice in Z.  If is string, specifies
                 sprintf format string for labelling in distance of the
                 origin (Xmm=0, Ymm=0) of each slice from plane containing
                 the AC, in mm, in the space of the transformed image
- callback - callback string for button down on image panels.  E.g.
             setting SO.callback to 'slice_overlay(''getpos'')' prints to
             the matlab window the equivalent position in mm of the
             position of a mouse click on one of the image slices
- printstr - string for printing slice overlay figure window, e.g.
             'print -dpsc -painters -noui' (the default)
- printfile - name of file to print output to; default 'slices.ps'

FORMAT slice_overlay
Checks, fills SO struct (slice_overlay('checkso')), and 
displays slice overlay (slice_overlay('display'))

FORMAT slice_overlay('checkso')
Checks SO structure and sets defaults

FORMAT [cmap warnstr] = slice_overlay('getcmap',cmapname)
Gets colormap named in cmapname string

FORMAT [mx mn] = slice_overlay('volmaxmin', vol)
Returns maximum and minimum finite values from vol struct 'vol'

FORMAT slice_overlay('addspm',SPM,VOL,dispf)
Adds SPM blobs as new img to SO struct, split effect, 'hot' colormap, 
Structures SPM and VOL are generated by calls to SPM results
if not passed, they are fetched from the workspace
If dispf is not passed, or nonzero, displays resulting SO figure also

FORMAT slice_overlay('addblobs', imgno, XYZ, vals, mat)
adds SPM blobs to img no 'imgno', as specified in 
XYZ  - 3xN voxel coordinates of N blob values
vals - N blob intensity values
mat  - 4x4 matrix specifying voxels -> mm

FORMAT vol = slice_overlay('blobs2vol', XYZ, vals, mat)
returns (pseudo) vol struct for 3d blob volume specified
in matrices as above

FORMAT slice_overlay('addmatrix', imgno, mat3d, mat)
adds 3d matrix image vol to img imgno.  Optionally
mat  - 4x4 matrix specifying voxels -> mm

FORMAT vol = slice_overlay('matrix2vol', mat3d, mat)
returns (pseudo) vol struct for 3d matrix 
input matrices as above

FORMAT mmpos = slice_overlay('getpos')
returns equivalent position in mm of last click on current axes (gca)
if the axes contain an image slice (empty otherwise)

FORMAT vals = slice_overlay('pointvals', XYZmm, holdlist)
returns IxN matrix with values of each image 1..I, at each
point 1..N specified in 3xN mm coordinate matrix XYZmm
If specified, 'holdlist' contains I values giving hold
values for resampling for each image (see spm_sample_vol)

FORMAT slice_overlay('display')
Displays slice overlay from SO struct

FORMAT slice_overlay('print', filename, printstr) 
Prints slice overlay figure, usually to file.  If filename is not
passed/empty gets filename from SO.printfile.  If printstr is not
passed/empty gets printstr from SO.printstr

V 0.9 8/9/00 Added contour maps (many thanks to Petr Janata for this
idea), expanded colormap reader
 
This program is copyright, or rather copyleft, under the terms of
the GNU public licence; see licence.man or http://www.gnu.org/copyleft

Still beta - take care.  Please report problems to Matthew Brett

MatthewBrett