<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.StileMessaggioDiPostaElettronica18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 2.0cm 2.0cm 2.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=IT link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span lang=EN-GB style='mso-fareast-language:EN-US'>Thank you so much for your priceless help!<br>I will try to accommodate for the insufficient data by extending both rotations to something >180+fan angle as you suggested.<br>I will investigate RTK code for both displaced detectors and short scan Parker weighting in other to understand how to properly set weights in case of two different displacements (my situation) within one dataset/geometry.<br><br>Gabriele<br><br><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-GB style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><b>Da:</b> Simon Rit <simon.rit@creatis.insa-lyon.fr> <br><b>Inviato:</b> giovedì 31 ottobre 2019 00.22<br><b>A:</b> gabriele.belotti.bergamo@gmail.com<br><b>Cc:</b> rtk-users <rtk-users@public.kitware.com><br><b>Oggetto:</b> Re: [Rtk-users] Half Fan dataset<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>Hi,<o:p></o:p></p></div><div><p class=MsoNormal>with --proj_iso_x, you only move the detector, not the source. If you also want to move the source, --source_x needs to be used. Hopefully the drawing on the <a href="http://www.openrtk.org/Doxygen/DocGeo3D.html">doc page</a> helps to understand this. So since you don't have any source offset in your geometry file, you are in the first line and last line situation of your drawing image.<o:p></o:p></p></div><div><p class=MsoNormal>Now, on the last line, what you're actually doing is imaging with the same source arc but actually shifting the detector. This is equivalent to a 180° source rotation with a larger rotation. You only need a weighting function to account for the redundancy but this is not going to be the same one as the one implemented because it needs to be on different side of the detector/projections (as on the first line of your projections). In any case, 180° is not enough, you need at least 180+fan angle and to combine this with a short scan Parker weighting.<o:p></o:p></p></div><div><p class=MsoNormal>Simon<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Wed, Oct 30, 2019 at 6:00 PM <<a href="mailto:gabriele.belotti.bergamo@gmail.com">gabriele.belotti.bergamo@gmail.com</a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB>Hi Simon,<br><br>Sorry for the late reply.<br>I drew a sketch in two part to explain my doubts.<br>First I drew 3 configurations for the geometry, representing my doubt towards what exactly is achieved by Isocenter Projection translation in the RTK geometry; i.e. does it result in a source translation or in a cone beam rotation (in XZ plane) to accommodate for the panel displacement? (I’m expecting the latter but I couldn’t properly check).<br><br>The last two sketches represent the same concept with two of the possible geometries(of course I’d prefer the latter):<br>The idea is to first rotate with the detector displaced on one side by 180° and then displace in the opposite direction and rotate of additional 180° (always clockwise rotation).<br>Any comment or suggestion would be highly appreciated and eventually I will try to impose weights according to improve the reconstruction.<br><br>PS: zoom in on the sketch, the resolution should be sufficient to read<br>PPS: I’m also attaching a screenshot of a reconstruction achieved with the exotic geometry :^] and the xml I generated for it (beware that my detector is 298 mm wide and the displacement is of +/-120 mm)<br><br>Best regards,<br>Gabriele</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b>Da:</b> Simon Rit <<a href="mailto:simon.rit@creatis.insa-lyon.fr" target="_blank">simon.rit@creatis.insa-lyon.fr</a>> <br><b>Inviato:</b> martedì 29 ottobre 2019 18.21<br><b>A:</b> <a href="mailto:gabriele.belotti.bergamo@gmail.com" target="_blank">gabriele.belotti.bergamo@gmail.com</a><br><b>Cc:</b> rtk-users <<a href="mailto:rtk-users@public.kitware.com" target="_blank">rtk-users@public.kitware.com</a>><br><b>Oggetto:</b> Re: [Rtk-users] Half Fan dataset<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Hi Gabriele,<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Great that you moved forward.<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>It's quite sure that the current implementation does not handle this new exotic geometry. So my suggestion would be to implement your own weights (e.g., using the python package).<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>It's not clear to me what you're trying to achieve here but it seems to me that only the central part seen by all source positions has enough data (point of space which see at least 180° of source positions) to be reconstructible. Maybe you should draw your two cones at 90° and -90° to be sure of what you're doing? Don't hesitate to share such a drawing on which we could comment.<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Best regards,<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Simon<o:p></o:p></p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>On Tue, Oct 29, 2019 at 4:10 PM <<a href="mailto:gabriele.belotti.bergamo@gmail.com" target="_blank">gabriele.belotti.bergamo@gmail.com</a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid windowtext 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB>Dear Simon and RTK users,<br><br>I’ve been experimenting on the generation of Half Fan CBCT images successfully from reprojections of CTs starting from Simon’s suggestions.<br>So far I was able to reconstruct images by displacing the detector in the X direction (+ or -) and completing a single rotation. Results were good and the FOV was of course larger than the one obtained from using the same virtual detector without displacement.<br><br>I’ve taken the simulation a step further and I’m currently creating a geometry which is similar to the combination of “rtksimulatedgeometry -n 180 --proj_iso_x <displacement> -o g_1” and “rtksimulatedgeometry -n 180 --proj_iso_x <(-1)*displacement> -o g_2 -f 180” (I’m rotating first between 0° and 180° while displacing by half detector size on +X and then 180° and 360° while displacing by half detector size on -X).<br>With this single .xml I’m reprojecting a CT into a single .mha using rtkforwardprojections and then I’m using the output as input for rtkfdk.<br><br>My results however suffer from a centered artifact, of semi-cylindrical shape, in my opinion caused by the superimposition of rays from the two beams around the isocenter.<br>This is further supported by the fact that the more I displace the detector the smaller the artefact becomes (of course I can’t displace more than 50% of detector size).<br>I guess a possible solution would be to have a perfect half-cone x-ray beam by shaping it using a collimator, but I’m not sure how to proceed on this in the simulated environment.<br>Have you got any suggestions or observation on how to achieve a reconstruction based on this? (two rotations/acquistion given two opposite detector displacements)<br><br>Thanks in advance,<br>Gabriele</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span lang=EN-GB>Da:</span></b><span lang=EN-GB> Simon Rit <<a href="mailto:simon.rit@creatis.insa-lyon.fr" target="_blank">simon.rit@creatis.insa-lyon.fr</a>> <br><b>Inviato:</b> venerdì 11 ottobre 2019 13.10<br><b>A:</b> <a href="mailto:gabriele.belotti.bergamo@gmail.com" target="_blank">gabriele.belotti.bergamo@gmail.com</a><br><b>Cc:</b> rtk-users <<a href="mailto:rtk-users@public.kitware.com" target="_blank">rtk-users@public.kitware.com</a>><br><b>Oggetto:</b> Re: [Rtk-users] Half Fan dataset</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB> </span><o:p></o:p></p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB>Hi,</span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB>It's easy to generate, you need to offset your detector, either via the RTK geometry or by setting the first coordinate of the origin of your projection to something which makes the projection uncentered. For example, in the geometry :</span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB>rtksimulatedgeometry -n 180 --proj_iso_x 100 -o g</span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB>rtkprojectshepploganphantom -g g -o proj.mha</span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB>rtkfdk -p . -g g -r proj.mha -o fdk.mha</span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB>You can simulate from a CT image by following </span><a href="http://wiki.openrtk.org/index.php/RTK/Scripts/ForwardProjection" target="_blank"><span lang=EN-GB>this example</span></a><span lang=EN-GB>.</span><o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB>Simon</span><o:p></o:p></p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB> </span><o:p></o:p></p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB>On Fri, Oct 11, 2019 at 9:58 AM <</span><a href="mailto:gabriele.belotti.bergamo@gmail.com" target="_blank"><span lang=EN-GB>gabriele.belotti.bergamo@gmail.com</span></a><span lang=EN-GB>> wrote:</span><o:p></o:p></p></div><blockquote style='border:none;border-left:solid windowtext 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB>Dear RTK users and developers,<br><br>I’m currently experimenting with FDK reconstruction and I’m struggling to find a Half-Fan projection dataset to fiddle around.. Do you know where I can find one? I’ve taken into consideration generating a set of DRRs from an existing phantom. Any help or advice you can give me would be greatly appreciated, thanks!<br><br>Gabriele Belotti</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB> </span><o:p></o:p></p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span lang=EN-GB>_______________________________________________<br>Rtk-users mailing list<br></span><a href="mailto:Rtk-users@public.kitware.com" target="_blank"><span lang=EN-GB>Rtk-users@public.kitware.com</span></a><span lang=EN-GB><br></span><a href="https://public.kitware.com/mailman/listinfo/rtk-users" target="_blank"><span lang=EN-GB>https://public.kitware.com/mailman/listinfo/rtk-users</span></a><o:p></o:p></p></blockquote></div></div></div></blockquote></div></div></div></blockquote></div></div></body></html>