<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 19.07.22 18:23, Simon Rit wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAF0oig29nsUoSkYEZAcSKOhN+HrLiyeU4vAePqCE3cMMgNQuZw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>Hi Vincent,</div>
        <div>Thanks for the report. I don't believe that there is need
          for a PR. It comes down to using a different parameterization
          which I think you can always go around with one of the
          different versions of AddProjection.</div>
        <div>Did I mention that the out of plane angle has no effect
          below 2°? If yes, I'm not sure you can trust this
          information... as I don't know where it comes from.</div>
        <div>Best regards,<br>
        </div>
        <div>Simon<br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Tue, Jul 19, 2022 at 11:34
          AM 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">
          <div>
            <div>On 11.05.22 15:20, Vincent Libertiaux wrote:<br>
            </div>
            <blockquote type="cite">
              <div>On 11.05.22 15:15, Simon Rit wrote:<br>
              </div>
              <blockquote type="cite">
                <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"
                      target="_blank" 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" target="_blank"
                      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>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <p>Hi Simon,</p>
    <p>you didn't mention that the out of plane angle has no effect
      below 2°.  I have read that in several papers about CT geometric
      calibration.  To be honest, I am glad that no PR is needed, I have
      a lot on my plate at work these days :).</p>
    <p>Best regards,</p>
    <p>V.<br>
    </p>
  </body>
</html>