dicomimage-registrationmri

Finding the coordinates (mm) of identical slice locations for two MR datasets acquired in the same scanning session


I have two MR acquisitions where the first one is a 3D acquisition (1x1x1 mm3) and the second is a 2D acquisition (2.24 x 2.24 x 5.00 mm, axial slices). The high resolution dataset is a full head 3D acquisition that gives 176 slices if resliced in the axial direction (orientation was initially saggital in the acquisition). The 2D acquisition only contains 3 axial slices that were selected to target specific regions in the brain and were acquired continuously.

Is it possible to know, which slices in the 3D high resolution dataset correspond accurately to the 3 slices in the 2D dataset assuming the subject did not move in between scans and that these datasets were acquired in the same scanning session? I am looking at dicoms for these two datasets and trying to use the ImageOrientationPatient and ImagePositionPatient tags to try and find out accurately what the coordinates of the slices in the 2D scan would be with respect to the magnet's isocenter. That way I can tell the exact coordinates of the first slice in 2D acquisition with respect to the magnet's isocenter and assuming the two scans share the same origin, I can then know exactly which axial slice in 3D scan the coordinates correspond to? The problem i am facing is that the ImageOrientationPatient vectors are different for both the acquisitions since the highres was acquire with the sagittal orientation specificiation (though 3d and can obtain slices in any direction) whereas the 2D data was acquired specifically as axial slices.

Could someone who has experience with dicom handling kindly throw some light on how I can link the two scans? Since it was the same scanning session I am assuming the reference position for these two acquisitions should be identical. Is that correct?


Solution

  • ImagePositionPatient is reliably referencing identical coordinate systems only when all images were taken in one scan. Unfortunately there is no "calibration to the patient" which ensures that a particular coordinate always references the same position in the same patient.

    Assuming this is the case in your scan, the task is pretty simple. The full geometry of each scan is defined by:

    Now that you precisely know the position of each pixel of each slice in both scans, the remaining task is to express the top left pixels of the 2D scan in the dimensions of the 3D scan. I would use coordinate transformation to do that, but other methods would work as well.