Skip to content

Projection matrices #1

@hyungjin-chung

Description

@hyungjin-chung

Thanks for sharing your work and open-sourcing!

One question that I found which is a bit confusing (probably because I did not understand it fully):

With the example script that you provided, I'm trying to get a grasp of how these projection matrices were constructed. When loading the projection matrices and printing out the first matrix, I see

array([[-127.500, 1000.000, 0.000, 127500.000],
       [-127.500, 0.000, -1000.000, 127500.000],
       [-1.000, 0.000, 0.000, 1000.000]])

Since the translation part is consistent across all the matrices (and looking at the projection images, I can see that the movement of the source is just a rotation) and doing normalization on the rotation matrix, I have

array([[-0.1275,  1.    ,  0.    ],
       [-0.1275,  0.    , -1.    ],
       [-0.001 ,  0.    ,  0.    ]])

My question is: how was this rotation matrix obtained from the simulation setup? Do you have a formula for computing the projection matrices using DSO and DSD? I'm a bit confused since the matrix does not seem to be orthogonal. Also, the relative rotation from the two adjacent projection matrices when computed with e.g. R2 @ R1.T is 1.0285, which is not 360/300.

Overall, I would greatly appreciate if you could help me understand how the conebeam projections were simulated and how projection matrices can be calculated from the known information.

Thanks again for the great work :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions