I’m trying to register a CT volume with a 2D XA (fluoroscopic image). My issue is to find the projection plane from CT volume that matches with the XA one using DICOM information of fluoroscopic image like SID, SOD, Primary and Secondary Angles etc.
I have found “DRR generation” module that computes a projection of the CT volume but it requires some parameters that I can’t reach from DICOM header such as the projection plane ones.
Is there a way to get these informations?
P.S.: I’m only interested to get the projection plane. The projection image could me help to check the correct matching.
Hi domP. In general, it is not easy to recover these parameters if they are not recorded. You might need to do 2D-3D registration. But before doing that, you should first constrain the results:
- Review the DICOM header of the XA, including private tags, to see what information is available. You might be able to get gantry angle.
- Review the user/service manual of the device. You may be able to get SID.
On modern C-arms SID, SOD, and anatomical angles are all available in standard DICOM tags. However, these are mostly just approximate values. The reported angles may have a few degrees error, SOD assumes that the object is at a specific distance above the table in the center, mechanical deformation of the arm is not taken into account, most clinical C-arms are not isocentric, etc.
Therefore, all the values that you can find in the DICOM header are only usable as initial guess for 2D/3D registration. Accurate 2D/3D registration based on visible anatomy is challenging for many reasons, mainly due to the fact that accuracy and robustness greatly depends on geometry and appearance of the anatomical region on X-ray images.
To overcome this, many research groups experimented with adding special radio-opaque marker arrangement in the C-arm’s field of view, adding external optical tracking, inside-out tracking (using camera or surface scanner), but each of these solutions has serious limitations, so they are not generally applicable and have not become widely used. If you plan to explore these options then you also need to keep in mind that you are competing with quick cone-beam 3D reconstruction that is widely available on all modern clinical C-arms, which allows much easier registration.
Yes, it would be good to see those header values. Also, I don’t know what is meant by “projection plane.” What parameterization do you seek?
in what way could I use DICOM informations for an initial guess for registration?
I have the gantry angles (Primary and Secondary Angles), SID and SOD.
The goal of 2D/3D registration is to determine all the unknown projection parameters. You would need to have a good initial guess for all these parameters and then use a non-linear optimizer to tune them so that you get better match between the DRR and the actual fluoro image. SID, SOD, and primare and secondary angles help in having a better estimation for some of the projection parameters. Plastimatch documentation pages such as this may help in getting a better understanding of the projection geometry and what parametrization you can use.
Thanks for the reply. However, I can’t understand in which way I can use these parameters.
For example, in DRR generation module, I have to set these parameters:
What are “View-Up vector” and “Normal Vector” ? In what way I can set them? Are they have any relationship with Primary and Secondary angles?
Specifying view up and normal vector is a common way to parametrize camera orientation in computer graphics. Primary and secondary angles is a different parametrization of camera orientation - see the DICOM standard for exact definition.