[Rtk-users] sart back projection, weighting steps

Cyril Mory cyril.mory at creatis.insa-lyon.fr
Tue Feb 24 04:55:00 EST 2015


Hi Robert,

I'm glad to know that most of the explanation text is understandable :)
You might want to check this filter:
http://www.openrtk.org/Doxygen/classrtk_1_1NormalizedJosephBackProjectionImageFilter.html
You can use the command line application "rtkbackprojections" with 
argument --bp to compare "Joseph" and "NormalizedJoseph".

When performing a back projection with non-normalized Joseph, the 
projection values are "splat" (splat is the adjoint operator of 
interpolation) between the four nearest voxels in each volume plane the 
ray intersects. Nothing guarantees that every voxel will receive a 
contribution during this process. How many contributions a voxel 
receives is determined by the sampling of the projections, which can be 
much looser or much denser (locally and globally) than what would be 
required. Dividing by the back projection of an image of ones mitigates 
this effect. In theory, as long as the forward and back projection 
operators are the adjoint of one another, it should not be a problem for 
SART. In practice, it does make a difference.

I hope it helps. Please let me know if it is still unclear;

Cyril

On 02/24/2015 09:56 AM, "Robert Calließ" wrote:
> Hello,
> in the file rtkSARTConeBeamReconstructionFilter.h there is briefly 
> written how the
> forward and back projection is performed. For the forward projection, 
> every pixel is
> divided by the intersection length of the ray with the volume. That is 
> clear to me.
> For the back projection applies the following text:
> "each voxel of the back projection must be divided by the value it 
> would take if
>  a projection filled with ones was being reprojected. This weighting 
> step is not
>  performed when using a voxel-based back projection, as the weights 
> are all equal to one
>  in this case. When using a ray-based backprojector, typically 
> Joseph,it must be performed."
> That means a temporary projection image is created where all pixels 
> have the value "1". So far I understand,
> if we use a voxel based back projector we do not need to apply this 
> weighting step because the ray from source to voxel center
> somewhere hits the detector plane and usually there we interpolate the 
> pixel value. But all of them are "1" so it's obsolete to
> interpolate inbetween.
> But if we use for instance the joseph back projector don't we 
> calculate the four weightings at the current volume planes the
> ray intersects with ? So we already have weightings that range from 0 
> to 1. I'm a little bit confused about the projection image
> filled with "1". So how a this back projection of "1" actually happens ?
> I hope someone can help me with that. Thank you.
> best regards,
> Robert
>
>
> _______________________________________________
> 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://public.kitware.com/pipermail/rtk-users/attachments/20150224/336c05d2/attachment-0009.html>


More information about the Rtk-users mailing list