RView: What and Why
The first version of RView
was originally patched together over one weekend in March 1995 to
illustrate the problem of 3D volume medical
image registration for a British science week event at the Science
Museum
in London, using code and ideas developed over the previous 3 years of
working in medical image segmentation and registration at Guys
Hospital. It turned out to be a handy utility and, along with the
multi-modality
registration algorithms developed during my PhD, it has proved useful
for
a great many projects. The basic idea was to have a display program
that could create arbitrary slices from any number of arbitrarily
sampled 3D datasets 'on the fly' to show the changing orientation of
MRI and CT data as a registration program brought them into alignment.
One of the underlying strengths of rview is that it treats all data as
true 3D volumes in order to create an arbitrary display of that data
via a set of linear transformations. It does not simply display an
acquired 'slice' of a 3D volume, it interpolates a slice from a given
point and orientation in space, and that slice does not need to have
the same orientation that the underlying data was acquired in. However,
unlike basic slice display programs (which simply display the slices as
acquired) this means you need true 3D geometric information about the
files (voxel size, slice thickness etc), in order to display them
correctly and relate them to other volume datasets. The windows version
of rview in 1998 integrated automated rigid volume registration
into rview and tried to address some of the main problems I've found in
implementing
and using registration algorithms in clinical research situations. Many
of these problems are introduced by converting image data between
various
intermediate file formats using different software packages, so I've
tried to ensure that rview can read
the raw scanner data directly to get access to such information as
image
voxel dimensions and slicing direction. In particular, the increased
use of DICOM and its support within rview has made rview a much more
easily applicable tool.
Here is a summary of the
basic functionality rview currently provides:
- General purpose slice
display and fused (subtraction, colour overlay, contour) displays of
multiple (upto 50) 3D or 4D datasets. (No use of graphics hardware for
rendering so the number and size of data volumes is usually limited
only by physical memory)
- Nearest Neighbour,
linear and cubic interpolation options for most display types.
- 3D rigid registration
driven by normalised mutual information, and the ability to save
transformed images created using linear, nearest neighbor or sinc
interpolation.
- 2D ROI stats of any
region in any slice display for all datasets.
- 3D semi-interactive and
manual tracing on multiple 3D volume datasets+ basic region statistics
calculations.
- ISO surface volume
rendering,
normal fusion rendering
and maximum/minimum intensity projection.
- Combined displays of
complex data types such as vector fields or manifolds shown as
deformation grids or displacement vectors.
Please read the Acknowledgments .