[Insight-developers] Medical/Physical Images: Algorithms Call: 02/16/01
Stephen R. Aylward
aylward@unc.edu
Fri, 16 Feb 2001 22:06:24 -0500
We should have a base image class that contains only voxel data.
We should have a derived image class that supports transforms to/from
voxel indexes from/to physical coordinates and that does transforms and
interpolation to directly access values in physical space.
Class Hierarchy
itkImage
itkMedicalImage
itkMedicalImage has the following methods
Get/SetOrigin (itkPoint *)
Get/SetOffset (itkPoint *)
Get/SetOrientation (itkPoint *dirX, *dirY, *dirZ)
Get/SetAffineTransformMatrix (itkMatrix *)
Get/SetMapper (itkMapper *)
Get/SetInterpolator (itkImageFunction)
GetPhysicalPointValue (itkPoint *)
GetPhysicalPointFromImagePoint (itkPoint *)
GetImagePointFromPhysicalPoint (itkPoint *)
The idea is that George can also derive from this class to get
itkUltraSoundMedicalImage that uses a polar transform....
This way, you can even write methods (albeit slow methods) that directly
use physical coordinates. The better approach for most methods is to
operate on the voxel data and then scale the results based on voxel
spacing.
We will need to make a conscious effort to provide itkFilters that
operate on itkMedicalImages so that after doing calculations, the
results can be appropriately adjusted based on anisotropic voxel spacing
(e.g., gradient measures can be made zoom invariant and e.g., a gaussian
convolution kernel can be designed to produce a blurring that is
isotropic in physical space).
--
===============================================
Stephen R. Aylward
Assistant Professor of Radiology
Adjunct Assistant Professor of Computer Science
http://www.cs.unc.edu/~aylward
aylward@unc.edu
(919) 966-9695