On 11.05.22 15:20, Vincent Libertiaux wrote:
On 11.05.22 15:15, Simon Rit wrote:
Hi,
Yes, I think it's correct. To be sure you correctly understand it, you can always do test cases with the source and detector positions, u v vectors in the coordinate system of your object.
http://www.openrtk.org/Doxygen/classrtk_1_1ThreeDCircularProjectionGeometry.html#a0fb1475ed76a28cde24fac85eae18e1e
and then check the resulting angles and distances.
Simon

On Wed, May 11, 2022 at 2:15 PM Vincent Libertiaux <v...@xris.eu> wrote:

    On 10.05.22 22:54, Simon Rit wrote:
    > Hi Vincent,
    > RTK can parametrize any orientation of the detector with the three
    > angles GantryAngle, InPlaneAngle, OutOfPlaneAngle. 0.025° seems
    very
    > small indeed! I don't know how much you know about software B
    but the
    > easiest would be to have either the projection matrix or the
    source
    > position, detector position, u axis and v axis in patient/object
    > coordinates to derive the RTK parameters.
    > Good luck with this!
    > Simon

    Hi Simon !

    Unfortunately, I don't have access to B projection matrices.

    As for the detector orientation in RTK, I have made this picture
    to make
    sure I understand properly how to use the gantry angle to achieve my
    desired geometry:

    https://ibb.co/J3H8z9M

    The cyan detector is the default configuration with a 0° gantry
    angle.
    The blue detector is at a gantry angle of alpha (largely
    exaggerated for
    the sake of clarity).  So in order to simulate an out-of-plane
    rotation
    of the detector around its vertical axis, I should translate this
    blue
    detector so that its center matches the coordinates of the cyan
    one, and
    translate the source accordingly (along the black vectors on the
    picture) ?  I assume that proj_iso_x/y and source_x/y are
    expressed in
    the gantry system of coordinates (local) ?


    Thank you again for your feedback,

    kindest regards,

    V.

Thanks Simon,

I'll investigate more and let you know.  Hopefully, it might be useful to someone else one day !

V.

Hi Simon,

I finally got some time to investigate further this issue this week.  I managed to get sharp edges everywhere now and it was indeed the detector out-of-plane angle colinear with the gantry angle that was the cause.  The value given by the other software seems to have been in rad rather than degrees; the angle I found was 1.15°.  This makes me wonder what were the assumptions under which no effect was found for angles below 2°.  If you know the title of the seminal paper, I'd be interested to read it.


As for the mean to include this angle in the geometry, no extra code was indeed needed.  If we call this extra angle "c", the following modifications have to be made in rtksimulatedgeometry:

- first angle = c

- sdd = sdd_0 * cos(c)

- sid = sid_0 * cos(c)

- source_x = source_x0 - sid*sin(c)

- proj_iso_x = proj_iso_x0 + (sdd-sid)*sin(c)

I can't really promise I'll find time to do it, but if it is the case, I'll submit a PR to include that in the matrices computation.

Hopefully, it will help others on the list who encountered a similar issue.

Best regards,

Vincent
_______________________________________________
Rtk-users mailing list
Rtk-users@public.kitware.com
https://public.kitware.com/cgi-bin/mailman/listinfo/rtk-users

Reply via email to