<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 19.07.22 19:21, Jerome Lesaint
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAJ-g2_1F70jpMkqYjP0MaiuXAapgKdZPxkHbSueMhnGRxOFmfg@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">Hello all,
        <div><br>
        </div>
        <div>The question of neglecting out-of-plane offsets if less
          than 2 degrees is discussed in Yang et al, Med. Phys., 2006,
          section III.A.</div>
        <div>Regards, <br>
        </div>
        <div>Jerome</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">Le mar. 19 juil. 2022 à 18:23,
          Simon Rit <<a href="mailto:simon.rit@creatis.insa-lyon.fr"
            moz-do-not-send="true" class="moz-txt-link-freetext">simon.rit@creatis.insa-lyon.fr</a>>
          a écrit :<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 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" 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">
              <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>
          _______________________________________________<br>
          Rtk-users mailing list<br>
          <a href="mailto:Rtk-users@public.kitware.com" target="_blank"
            moz-do-not-send="true" class="moz-txt-link-freetext">Rtk-users@public.kitware.com</a><br>
          <a
            href="https://public.kitware.com/cgi-bin/mailman/listinfo/rtk-users"
            rel="noreferrer" target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">https://public.kitware.com/cgi-bin/mailman/listinfo/rtk-users</a><br>
        </blockquote>
      </div>
    </blockquote>
    <p>Thank you very much for the reference Jérôme !</p>
    <p>Best regards,</p>
    <p>Vincent<br>
    </p>
  </body>
</html>