For example I can have a series of CT axial with this value:
0.0/0.0/0.0
0.0/0.0/0.5
0.0/0.0/1.0
0.0/0.0/1.5
Patient position (0020,0037) for all images is 1.0/0.0/0.0/0.0/1.0/0.0
or a series of CT axial with this value:
73.949997/0.0/-110.28971
73.949997/0.0/-109.88914
73.949997/0.0/-110.48856
73.949997/0.0/-110.08798
Patient position (0020,0037) for all images is 1.0/0.0/0.0/0.0/1.0/0.0
or a series of CT axial with this value:
66.699997/47.013481/-163.11487
66.699997/47.760445/-162.80463
66.699997/47.507408/-162.49438
Patient position (0020,0037) for all images is
1.0/0.0/0.0/0.0/0.774564/0.632496
Is there a relationship between Patient position and Image position to
retrieve the value of the step?
I hope someone can help me....
Thanks in advance
Vasmvr
You need to compute the distance along a line that passes through
the parallel slices perpendicularly.
Given two slices, compute the distance from the origin (0,0,0) of
the top left hand corner of each along the normal to the slice
orientation, and subtract one distance from the other to give the
distance between the center plane of each slice, i.e., the
reconstruction interval.
For each slice, the normal to the slice orientation is the cross
product of the row and column unit vectors (first three and second
three values of Image Orientation (Patient), respectively).
For each slice, the distance from the origin (0,0,0) of the top
left hand corner is the dot product of the Image Position (Patient)
(i.e., a vector from the origin to the top left hand corner of the
image) and the normal to the slice orientation (i.e., the dot
product is the magnitude of the origin to the top left hand corner
vector component along the direction of the normal).
For multiple slices, you may want to first sort them by distance
from the origin along the normal in case they are not already in
ascending order, and you may want to check that the reconstruction
interval is the same between successive sorted slices (i.e., they
are evenly spaced), and you may want to check that they are all
parallel (i.e., that they have the same values for Image Orientation
(Patient)).
For examples of how to do this and similar related things, see:
com.pixelmed.geometry.GeometryOfSlice
com.pixelmed.geometry.GeometryOfVolume
com.pixelmed.dicom.GeometryOfSliceFromAttributeList
com.pixelmed.dicom.GeometryOfVolumeFromAttributeList
David