Helical4cylindrical
First attempt for an implementation of Katsevich algorithm as described in the paper "Exact helical reconstruction using native cone-beam geometries", Noo et al., PMB, 2003. Both flat panel and curved detector geometries are implemented though the curved geometry is still under debugging. As for the flat panel implementation, the whole thing more or less works. Some strange "tiling" artifacts remain.
I thought it was worth publishing the PR right now, even if a lot of work is still to be done, in order to get some feedback on the technical aspects of the coding.
The algorithm runs in 4 steps :
- Compute a derivative of the projections
- Cosine-weight
- Forward rebinning + Hilbert transform (from ACoussat PR) + backward rebinning
- Backprojection.
A new geometry class is created, to account for the specific helical trajectory. Also, a few applications are added, which basically run each of the steps independently. There might not be necessary in the final version.
Future work :
- Debug curved detector
- Implement a complete reconstruction image filter (instead of an application that links all the steps).
Thanks for the feedback. Will dig into it shortly. Meanwhile, I added a reconstruction filter and the corresponding application. The latter will probably the only remaining application in the final PR.
Squashed all commits into 1, with WIP prefixing.
Impressive PR! Out of curiosity, did you find any issue regarding the Hilbert filter? Did you have to fix anything?
Impressive PR! Out of curiosity, did you find any issue regarding the Hilbert filter? Did you have to fix anything?
The initial version of your PR - without PixelShift - produced severe oscillations on the transformed signal. But the newer one fixed it. Further testing will confirm.