[Insight-developers] Image Orientation
Brad King
brad.king@kitware.com
Fri, 16 Feb 2001 11:27:26 -0500 (EST)
> Steve Aylward:
>
> > We need to maintain MR orientation info on one of our apps.
>
> > Can we add the ability to specify image orientation to our base image
> > class? Dicom specifies orientation via a set of three vectors
> > indicating x, y, and z directions in physical space - or we could pass a
> > vnl_matrix to the image class. It would be part of the existing image
> > index to physical space transform.
>
> If we decide to add this to the image class (a proposition on which
> I'm still neutral), the right way would be to replace the current
> origin and spacing with an AffineTransform object, which contains all
> the desired information (including the inverse transform). This would
> require changes to the classes which currently use the origin and
> spacing to determine the physical coordinates. If we want to save a
> little space, we could use a pointer to the AffineTransform; if the
> pointer is zero, then an identity transform is assumed. (But this
> might cause more problems than it's worth.)
I would say that the spacial position and orientation of an image relative
to the world do not belong in the concept of an image. We definately need
to have an easy way to have images appear to filters in different
orientations, though. I suggest two approaches:
1.) Have a "SimilarityTransformFilter" added to a pipeline to rotate,
scale, and translate images relative to their own axes before entering the
main filter.
2.) Write a "SimilarityTransformImageAdaptor" to perform the
transformations as pixels are accessed by a filter.
The second approach seems better to me, but I wanted to get both into the
discussion.
-Brad