CERN / TIGRE

TIGRE: Tomographic Iterative GPU-based Reconstruction Toolbox
BSD 3-Clause "New" or "Revised" License
550 stars 182 forks source link

offset weighting issue in FDK & other iterative algorithms (MATLAB) #371

Closed grupesh closed 2 years ago

grupesh commented 2 years ago

the detector offset value used in preweighting2 function in FDK function appears to be incorrect. for a dataset collected with offset detector, I applied our proprietary FDK algorithm (left), default TIGRE FDK (middle) and fixed TIGRE FDK (right) -- see below

image

Please notice that under-weighting in the overlapped ROI is fixed.

Adding the code section below -- line 152 is added image

This issue also appears in recons from iterative algorithms as bright ring at the edge of overlapping ROI. I'm curious about how to fix that, as there's no offset weighting applied in iterative algorithms. Please guide.

Specifications

AnderBiguri commented 2 years ago

Hi @grupesh ,

let me investigate this.... Can you share the geometry definition of your system, please? In iterative algorithms, there is no need for offset weighting. I have myself used iterative algorithms with a detector offset successfully for years. CGLS is a special case, due to its matehmatics, but the offsets are not removed with weigths. Can you give me more information with actual code (not images) so I can test the exact same thing on my side?

Also note that geo.COR tends to be zero for medical machines (as the center of rotation is static), so your line 152 does nothing most cases.

grupesh commented 2 years ago

Hi, I'm sharing the geometry information and projection, our reference volume with you via email. Please keep that private.