# MINC/VisualTools/register
#### NAME

MNI-register - interactive volume display and point tagging program

#### SYNOPSIS

register [-version]] [-help] [-rgb]] [-cmap]] [-single] [-double] [-global variable value]] [volume1''filename] [volume2''filename] [tags.tag]

#### DESCRIPTION

Register is an interactive graphics application. It can display one or two volumes (typically MR or PET), and the merged image of the two. Some, but not all, versions will allow switching between single and double buffer mode and between RGB and colour map mode, so the options -rgb, -cmap, -single, -double are useful for setting the initial state of the program. There are three viewports for each volume, showing tranverse, sagittal, coronal slices. The user can move throughout the volumes, and create tag points within the volumes. If enough tag points for two volumes are picked, then a transformation is computed for registering the two volumes. This transform is used in displaying the merged image and in allowing the user to start a process which resamples one of the volumes into the same space as the other. A vector volume will normally be converted to an RGB volume, on input. I don't know what that means in terms of register's display. Alternatively, the vector can be converted to a scalar whose value is the mean of the vector components, by setting the global variable Convertvectorsto_rgb to FALSE.

#### USER INTERFACE

The user interface is a mouse-based interface composed of buttons, sliders, and text entry. Buttons can be pressed with the left mouse button. Text entries can be changed by pressing the left mouse button on them, then typing text. Typing return signals the text entry is done. Typing escape ends text editting without modifying the text. The delete, cursor left, and cursor right keys may be used. Ctrl-a and ctrl-e move the cursor to the beginning and end of text, respectively. Ctrl-u deletes all text in the text entry.

#### MAIN MENU

Quit: Quits the program, after confirmation.
Resample and Load: Resamples the second volume to place it in the same space as the first, according to the transformation defined by the tag points. Resample Filename: Text entry to set the name of the file to create for the resampling.
Synced / Not Synced: Toggle switch to control whether the cursor position in all volumes is enforced to always be the same.
Flat / Interpolated: Not implemented yet. Eventually will control the interpolation method for display. Colour Map / RGB: Toggles between colour map mode (faster updates) and RGB mode (truer colours).
Double / Single: Toggles between double and single buffer.
Load Tags: Loads a set of tag points into the program.
Tags Filename: Text entry to set name of filename to be used by load and save tags. A default extension \".tag\" is provided automatically.
Save Tags: Saves all active tag points to a file. If one volume is loaded, then a set of single tags is saved. If two volumes are loaded, then a set of pairs of tags are saved.
Save Transform: Saves the transform defined by the tag points, if it exists.
Transform Filename: Text entry to set name of filename to be used by save transform. A default extension \".xfm\" is provided automatically.
Record Tag: Overwrites the current tag point positions with the current positions within the volumes. If the current tag point is the end of the tags, then it creates a new tag point.
Delete Tag: Deletes the current tag point.
Delete All Tags: Pops up a confirmation box allowing you to delete all the tags.
Transform Type: Pops up a dialog to select 6 parameter, 7 parameter, 12 parameter, or thin-plate spline non-linear fitting.
Tags In/Visible: Toggles the display of tag point positions on the slices.
Cursor In/Visible: Toggles the display of cursor crosshair on the slices.
Interp: Flat/Smooth: Toggles the display of slices between flat and smooth shading. Smooth shading takes much longer to update (a few seconds), but produces higher quality images, especially noticeable when the images are zoomed up.
RMS: Displays the average RMS error of the tag points, if a transform exists.

#### VOLUME MENUS

Voxel and World Position Readouts Displays the position of the volume cursor in voxel and world coordinates. The positions can be changed numerically by clicking on the number and typing in the desired position.
Load Volume: Loads the specified volume.
Volume Filename: Specifies the volume filename.
Reset View: Resets the scale and translation of the slices to fit in the viewports.
Filter Pops up a dialog window that selects the filter type for each of the 3 views of the volume. The filtering applies across slices, but not within slice. The filter types are: nearest neighbour, linear interpolation, box filter, triangle filter, and gaussian filter.
Under Colour: Sets the colour displayed for voxels whose values are less than the range.
Over Colour: Sets the colour displayed for voxels whose values are greater than the range.
Colour Bar Slider: Sets the colour range. The left mouse can be used to drag the upper or lower limit. The middle mouse is used to move both at the same time.
Colour Coding Type: Sets the colour coding method to one of gray scale, hot metal, spectral, red, green, or blue.

#### MERGED MENU

Voxel and World Position Readouts: Displays the position of the volume cursor in voxel and world coordinates. The positions can be changed numerically by clicking on the number and typing in the desired position.
Reset View: Resets the scale and translation of the slices to fit in the viewports.
Merge Method Buttons: Sets the merge method to one of blend, weighted, one on two, or two on one. Blend allows blending between the two volumes. Weighted allows arbitrary weights for the two volumes. One on two places volume one on top of volume two, with volume two showing through if volume one is out of range. Two on one is the opposite.
Opacity Sliders Sets the weights of the two volumes. Only used if the merge method is blend or weighted.

#### TAGS MENU

Position: Displays and allows setting of tag positions.
Name: Sets the name of a tag.
On / Ignore: Sets the activity of a tag, whether it contributes to the transformation or not.
Dst: Displays the distance of the tag point in the first volume from the position of the transformed

#### MOUSE AND KEYBOARD

In the slice viewports, the following actions are valid:
Left Mouse: Sets the volume cursor position.
Middle Mouse: Moves slice perpendicular according to y position of mouse.
Right Mouse: Adds a new tag point at the current volume cursor positions.
Shift/Ctrl/Alt Left Mouse: Translates the slice display
Shift/Ctrl/Alt Middle Mouse: Zooms the slice display according to the y position of the mouse.

#### VOLUME CACHING

Register has the ability to handle volumes larger than virtual memory by caching parts of the volume in memory. The current default for deciding when to cache is volume is 80 Megabytes. See the documentation of the source libraries for MNI-register for more information.
Note that volume caching can have a radical effect on performance. In some cases you may get much better results by disabling caching, especially when working with volumes on NFS-mounted filesystems.
To disable caching, set VOLUME_CACHE_THRESHOLD environment variable to -1. I.E export VOLUME_CACHE_THRESHOLD=-1 in bash

#### FILES

/usr/local/lib/register.globals
/usr/local/lib/register_UI.globals

#### AUTHOR

DavidMacDonald