[Insight-developers] [GDCM] ITK Origin and coordinate system
Gordon Kindlmann
gk at bwh.harvard.edu
Tue Jan 17 21:40:51 EST 2006
hello,
Okay, so I agree with/understand all that you've written here:
On Jan 17, 2006, at 12:50 PM, Luis Ibanez wrote:
>
> Hi Gordon,
>
> Thanks for pointing out about the cell/node centered issue.
>
> That's not the problem we are concerned about at this point,
> although it is something important to keep in mind.
>
>
> The issue we are discussing is that the transformation between
> index and physical coordinates is in principle:
>
>
> Point = M * S * Index + Origin
>
>
> Where:
>
> - Point and Origin are in the same physical coordinate system.
>
> - M is the NxN matrix of direction cosines that represent
> the orientation of the sampling grid axis.
>
> - S is a diagonal matrix with the inter-slice spacing
> along every direction.
>
> - Index is the set of integer coordinates used for locating
> a pixel in the image sampling grid.
So, can someone tell me why the following is not the case with DICOM
in ITK:
* The (0x0020,0x0037) "Image Orientation (Patient)" tag gives you two
unit-length vectors which you put in the first two columns of your
"M" matrix.
* The (0x0028,0x0030) "Pixel Spacing" tag gives you two scalars that
you put in the first two diagonal entries of "S".
* You take the difference between the (0x0020,0x0032) "Image Position
(Patient)" tags of any two successive slices, call this vector D.
Put D/|D| (normalized) in the third column of "M", and put |D| in the
third and final diagonal entry of "S".
* The (0x0020,0x0032) "Image Position (Patient)" tag of the very
first image (of the series) gives you "Origin".
ITK adopted DICOM's left-posterior-superior LPS as the coordinate
system for orientation. The above four points are to me the most
obvious mapping of DICOM orientation information to the mathematical
formalism you describe. How can ITK be doing anything else?
Gordon
More information about the Insight-developers
mailing list