SlicerRT icon indicating copy to clipboard operation
SlicerRT copied to clipboard

ENH: Initial support of DRR calculation for orientated CT volumes

Open MichaelColonel opened this issue 1 year ago • 0 comments

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.

MichaelColonel avatar Jan 05 '24 09:01 MichaelColonel