[Rtk-users] itFirstAngle and itLastAngle in rtkParkerShortScanImageFilter.txt

Simon Rit simon.rit at creatis.insa-lyon.fr
Fri Oct 24 10:24:58 CEST 2014


Hi Andy,
Good question. Yes there is a reason. In another part of the code,
rtkFDKWeightProjectionFilter.txx, the continuous integral over the gantry
angles is discretized by taking into account the AngularGaps so that the
algorithm can cope with variations in the rotation speed. Therefore, the
two projections around the large angular gap introduced by the short scan
will be overweighted because it is not aware of a short scan weighting
elsewhere. The solution currently implemented discards the projections
around the gap, as you have correctly noticed.
There is a better solution which would avoid throwing away these two
projections but this was less easy to introduce in the pipeline and in most
cases there is a sufficient number of projections anyway. But you could try
to modify this if you're dealing with a very few projections.
Regards,
Simon

On Fri, Oct 24, 2014 at 9:50 AM, Andy Shieh <hsieandy at gmail.com> wrote:

> Hi Simon & RTK developers & the RTK community,
>
> I have a question about how delta is calculated in
> rtkParkerShortScanImageFilter.txt.
>
> The itFirstAngle and the itLastAngle were used to find the first and last
> angular values for calculating delta.
>
> However I noticed that at line 93 itFirstAngle is acquired by:
>
>   itFirstAngle = sortedAngles.find(rotationAngles[maxAngularGapPos]);
>   itFirstAngle =
> (++itFirstAngle==sortedAngles.end())?sortedAngles.begin():itFirstAngle;
>   itFirstAngle =
> (++itFirstAngle==sortedAngles.end())?sortedAngles.begin():itFirstAngle;
>
> Why are the second and third lines duplicated? Wouldn't this point to the
> "second" angle instead?
>
> And also for itLastAngle at line 99:
>
>   itLastAngle = sortedAngles.find(rotationAngles[maxAngularGapPos]);
>   itLastAngle =
> (itLastAngle==sortedAngles.begin())?--sortedAngles.end():--itLastAngle;
>
> Why is the second line needed here? Wouldn't this point to the "second
> last" angle instead? (Since maxAngularGapPos was caluclated
> with GetAngularGapsWithNext).
>
> I did test this with a 0-200 deg short scan, and found that firatAngle and
> lastAngle weren't equal to 0 and 200, but were calculated to be the second
> and second last angles instead.
> Is there any reason for this implementation?
>
> Thank you.
>
> Cheers,
> Andy
>
> _______________________________________________
> Rtk-users mailing list
> Rtk-users at public.kitware.com
> http://public.kitware.com/mailman/listinfo/rtk-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.creatis.insa-lyon.fr/pipermail/rtk-users/attachments/20141024/5e87555c/attachment.htm>


More information about the Rtk-users mailing list