<div dir="ltr"><div><div><div><div>Hi,<br></div>Indeed, I have published an <a href="http://www.creatis.insa-lyon.fr/~srit/biblio/rit2012b.pdf">article</a> on this projector describing my implementation, you could use it if you want, there's even a piece of code in it although I'm pretty sure it's not the best implementation. This implementation dealt with the case where the rotation axis is parallel to the detector. As far as I can remember, the original article of De Man and Basu is also quite clear.<br></div>I don't have time to go into the details of what you have proposed but, from a glance, the first step seems useless.<br></div>Good luck in your implementation and don't hesitate to send it to us when you have a working RTK implementation,<br></div>Simon<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jul 14, 2015 at 9:01 AM, "Robert Calließ" <span dir="ltr"><<a href="mailto:Robert.Calliess@gmx.de" target="_blank">Robert.Calliess@gmx.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-family:Verdana;font-size:12.0px"><div>
<div>Hell RTK User,</div>

<div>I think there is a mistake in the described approach.</div>

<div>Point a) and f) meight be wrong. As far as I Understand, all Pixels</div>

<div>that are covered by the projected voxel vertices are update</div>

<div>with weight * voxel_value. Where weight is the overlaping area</div>

<div>of the projected voxel vertices polygon on the detector plane and the</div>

<div>underlying detector pixels.</div>

<div> </div>

<div>Any opinions before implementing it ?</div>

<div> </div>

<div>regards,</div>

<div>Robert</div>

<div> 
<div name="quote" style="margin:10px 5px 5px 10px;padding:10px 0 10px 10px;border-left:2px solid #c3d9e5;word-wrap:break-word">
<div style="margin:0 0 10px 0"><b>Gesendet:</b> Montag, 13. Juli 2015 um 19:21 Uhr<br>
<b>Von:</b> "Robert Calließ" <<a href="mailto:robert.calliess@gmx.de" target="_blank">robert.calliess@gmx.de</a>><br>
<b>An:</b> <a href="mailto:rtk-users@public.kitware.com" target="_blank">rtk-users@public.kitware.com</a><br>
<b>Betreff:</b> [Rtk-users] distance driven projector, a simplified approach ?</div>

<div name="quoted-content">
<div><div><div class="h5">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Hello RTK users,</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">I guess you know about the distance-driven projector. The main idea,</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">as far as I understand, of this algorithm is to project voxel boundaries onto</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">a common plane and the detector cell boundaries also on this common plane.</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Then the voxel’s contribution (weight) is the area of this overlapping. I read that the</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">projection of the voxel and detector cell boundaries on a common plane can be</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">simplified if the detector is a flat panel detector (guess this is what they called fixed</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">detector geometry). Even if they  mean by fixed-detector geometry that the detector</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">is not moving, we could use this simplification in a circular cone beam geometry. We can</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">either rotate the detector and source around the object or the object can be rotated</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">and the detector and source are fixed. I think Simon also wrote a paper about the</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">distance driven projector (?). </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">So my simplified approach would be (fixed detector and source position, object is rotating):</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></p>

<p><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><span>a)<span style="font:7.0pt "Times New Roman"">      </span></span></span><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">project voxel center on detector plane to determine the corresponding detector cell</span></p>

<p><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><span>b)<span style="font:7.0pt "Times New Roman"">      </span></span></span><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">project voxel vertices on detector plane (dertemine area of this projected polygon)</span></p>

<p><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><span>c)<span style="font:7.0pt "Times New Roman"">       </span></span></span><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">for each projected voxel vertex dertermine the neares detector cell</span></p>

<p style="margin-left:72.0pt"><span style="font-size:11.0pt;font-family:"Courier New";color:rgb(31,73,125)"><span>o<span style="font:7.0pt "Times New Roman"">   </span></span></span><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">i.e. vertex(20.3, 10.1) => DetectorCell(20, 10)</span></p>

<p><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><span>d)<span style="font:7.0pt "Times New Roman"">      </span></span></span><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">dertermine the area of the polygon described by the corresponding detector cells (c)</span></p>

<p><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><span>e)<span style="font:7.0pt "Times New Roman"">      </span></span></span><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">weight = area_from_b / area_from_d</span></p>

<p><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"><span>f)<span style="font:7.0pt "Times New Roman"">       </span></span></span><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">add voxel_value * weight in detector cell determined in a</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">For the back projector the steps would be always the same (a – e). Value to back project</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Is taken from the correction image at position determined in step a.</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">For step b and d we could determine the minimum bounding rect and use this as the polygons areas.</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">So the weights should always be between 0 and 1 ( Wether the MEB lies exactly on the detector cells</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">or in between)</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">I’m new to this topic. I want to hear your opinion. Is this a possible interpretation of the distance-driven</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">projector, since the main idea is to calculate the overlapping of voxel boundaries with detector cell bounderies.</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Best Regards,</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)">Robert</span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri,sans-serif;color:rgb(31,73,125)"> </span></p>
</div></div></div>
_______________________________________________ Rtk-users mailing list <a href="mailto:Rtk-users@public.kitware.com" target="_blank">Rtk-users@public.kitware.com</a> <a href="http://public.kitware.com/mailman/listinfo/rtk-users" target="_blank">http://public.kitware.com/mailman/listinfo/rtk-users</a></div>
</div>
</div>
</div>
</div></div></div>
<br>_______________________________________________<br>
Rtk-users mailing list<br>
<a href="mailto:Rtk-users@public.kitware.com">Rtk-users@public.kitware.com</a><br>
<a href="http://public.kitware.com/mailman/listinfo/rtk-users" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/rtk-users</a><br>
<br></blockquote></div><br></div>