STIR icon indicating copy to clipboard operation
STIR copied to clipboard

Parallelproj support issues linked to scanner/FOV radius

Open markus-jehl opened this issue 2 years ago • 3 comments

In the parallelproj wrapper in STIR there still seem to be a couple of issues. Currently, there are artifacts on either side of the sinogram when forward-projecting a sphere (or a voxel) that is positioned towards the edge of the FOV (left: Cylindrical, right: BlocksOnCylindrical): image This can be fixed by increasing the radius in ParallelprojHelper.cxx (which is currently set to the inner ring radius of the scanner). However, when increasing this radius a lot, it not only fixes these horizontal artifacts, but it also shrinks the extent of the activity curve in the sinograms, which should not happen (left: inner_radius + 5, right: inner_radius + 20): image

markus-jehl avatar Sep 02 '22 09:09 markus-jehl

Kris: "The ray really shouldn’t change if we ask it to compute intersections with a larger FOV. That might be another bug on how we call parallelproj (although our code is quite small). I think we need to add a few test cases to the “compute intersections” for the LOR code. Stuff like checking that if we give an LORAs2Points, we get a line that still contains the 2 original points."

markus-jehl avatar Sep 02 '22 09:09 markus-jehl

At present we see the only relevant code is https://github.com/UCL/STIR/blob/4142d5969e4320e32ed9dbe463b0fd50f36fb3f6/src/recon_buildblock/Parallelproj_projector/ParallelprojHelper.cxx#L91

We should have a test function for get_intersections_with_cylinder just to exclude this is where the problem sits.

KrisThielemans avatar Sep 16 '22 10:09 KrisThielemans

image The "squashing" of the sinograms was caused by a bug in the code that computes intersections with a cylinder.

markus-jehl avatar Sep 29 '22 16:09 markus-jehl

Should this be closed and a new one created that refers specifically to investigating methods to replicate tangential lines of response, @KrisThielemans ?

markus-jehl avatar Dec 20 '22 08:12 markus-jehl