<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 11.05.22 15:20, Vincent Libertiaux
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:b34421fc-9ac9-8775-c0c3-e67ce90c0ed2@xris.eu">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div class="moz-cite-prefix">On 11.05.22 15:15, Simon Rit wrote:<br>
      </div>
      <blockquote type="cite"
cite="mid:CAF0oig34ofV8Qz4MQw2Kbqt2LCk+Jq0duO_u3Mp=kdVyCJjROg@mail.gmail.com">
        <meta http-equiv="content-type" content="text/html;
          charset=UTF-8">
        <div dir="ltr">
          <div>Hi,</div>
          <div>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.</div>
          <div><a
href="http://www.openrtk.org/Doxygen/classrtk_1_1ThreeDCircularProjectionGeometry.html#a0fb1475ed76a28cde24fac85eae18e1e"
              moz-do-not-send="true" class="moz-txt-link-freetext">http://www.openrtk.org/Doxygen/classrtk_1_1ThreeDCircularProjectionGeometry.html#a0fb1475ed76a28cde24fac85eae18e1e</a></div>
          <div>and then check the resulting angles and distances.<br>
          </div>
          <div>Simon<br>
          </div>
        </div>
        <br>
        <div class="gmail_quote">
          <div dir="ltr" class="gmail_attr">On Wed, May 11, 2022 at 2:15
            PM Vincent Libertiaux <<a href="mailto:vl@xris.eu"
              moz-do-not-send="true" class="moz-txt-link-freetext">vl@xris.eu</a>>
            wrote:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">On 10.05.22 22:54, Simon
            Rit wrote:<br>
            > Hi Vincent,<br>
            > RTK can parametrize any orientation of the detector
            with the three <br>
            > angles GantryAngle, InPlaneAngle, OutOfPlaneAngle.
            0.025° seems very <br>
            > small indeed! I don't know how much you know about
            software B but the <br>
            > easiest would be to have either the projection matrix
            or the source <br>
            > position, detector position, u axis and v axis in
            patient/object <br>
            > coordinates to derive the RTK parameters.<br>
            > Good luck with this!<br>
            > Simon<br>
            <br>
            Hi Simon !<br>
            <br>
            Unfortunately, I don't have access to B projection matrices.<br>
            <br>
            As for the detector orientation in RTK, I have made this
            picture to make <br>
            sure I understand properly how to use the gantry angle to
            achieve my <br>
            desired geometry:<br>
            <br>
            <a href="https://ibb.co/J3H8z9M" rel="noreferrer"
              target="_blank" moz-do-not-send="true"
              class="moz-txt-link-freetext">https://ibb.co/J3H8z9M</a><br>
            <br>
            The cyan detector is the default configuration with a 0°
            gantry angle.  <br>
            The blue detector is at a gantry angle of alpha (largely
            exaggerated for <br>
            the sake of clarity).  So in order to simulate an
            out-of-plane rotation <br>
            of the detector around its vertical axis, I should translate
            this blue <br>
            detector so that its center matches the coordinates of the
            cyan one, and <br>
            translate the source accordingly (along the black vectors on
            the <br>
            picture) ?  I assume that proj_iso_x/y and source_x/y are
            expressed in <br>
            the gantry system of coordinates (local) ?<br>
            <br>
            <br>
            Thank you again for your feedback,<br>
            <br>
            kindest regards,<br>
            <br>
            V.<br>
            <br>
          </blockquote>
        </div>
      </blockquote>
      <p>Thanks Simon,</p>
      <p>I'll investigate more and let you know.  Hopefully, it might be
        useful to someone else one day !</p>
      <p>V.<br>
      </p>
    </blockquote>
    <p>Hi Simon,</p>
    <p>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.</p>
    <p><br>
    </p>
    <p>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:</p>
    <p>- first angle = c</p>
    <p>- sdd = sdd_0 * cos(c)</p>
    <p>- sid = sid_0 * cos(c)</p>
    <p>- source_x = source_x0 - sid*sin(c)</p>
    <p>- proj_iso_x = proj_iso_x0 + (sdd-sid)*sin(c)</p>
    <p>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.</p>
    <p>Hopefully, it will help others on the list who encountered a
      similar issue.<br>
    </p>
    <p>Best regards,</p>
    <p>Vincent<br>
    </p>
  </body>
</html>