Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENH: Initial support of DRR calculation for orientated CT volumes #240

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

MichaelColonel
Copy link
Collaborator

This module partially supports calculation of DRR for orientated CT volumes,
if IJKToRASDirection matrix of the volume isn't as below.

| -1  0 0 0 |
|  0 -1 0 0 |
|  0  0 1 0 |
|  0  0 0 1 |

If IJKToRASDirection matrix A=aij isn't LPS transform,

         | a11 a12 a13 a14 |     | -1  0 0 0 |
   A = | a21 a22 a23 a24 | != |  0 -1 0 0 |
         | a31 a32 a33 a34 |     |  0  0 1 0 |
         | a41 a42 a43 a44 |     |  0  0 0 1 |

then, the volume direction to LPS transform matrix R can be applied to the CT volume to make IJKToRASDirection matrix of the CT volume to be LPS orientated after hardening the transform.

the matrix transformation:

                  | -1  0 0 0 |
R = A^-1 * |  0 -1 0 0 |
                  |  0  0 1 0 |
                  |  0  0 0 1 |

the matrix widget shows elements of the transformation matrix R,

if the matrix A is LPS orientated => the matrix R is an identity matrix.

Some bugs in orientation of calculated DRR for orientated CT volumes are still present.

If IJKToRASDirection matrix _A_ isn't LPS transform,

      | a11 a12 a13 a14 |    | -1  0 0 0 |
_A_ = | a21 a22 a23 a24 | != |  0 -1 0 0 |
      | a31 a32 a33 a34 |    |  0  0 1 0 |
      | a41 a42 a43 a44 |    |  0  0 0 1 |

then, the volume direction to LPS transform matrix _R_ can be applied to the CT volume
to make IJKToRASDirection matrix of the CT volume to be LPS orientated
after hardening the transform.

the matrix transformation:

               | -1  0 0 0 |
_R_ = _A_^-1 * |  0 -1 0 0 |
               |  0  0 1 0 |
               |  0  0 0 1 |

the matrix widget shows elements of the transformation matrix _R_,

if the matrix _A_ is LPS orientated => the matrix _R_ is an identity matrix.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant