CERN / TIGRE

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

Interpolation forward projector clips at detector #353

Closed gfardell closed 2 years ago

gfardell commented 2 years ago

If the detector is configured inside the reconstruction volume (i.e. at the origin) the interpolation forward projector appears to clip at the detector rather than extending through the reconstruction volume.

This happens in both cone and parallel beam with the detector at the origin. The difference in output values can easily be compared to the Siddon projector results.

AnderBiguri commented 2 years ago

Hum, isn't this expected behaviour? The rays stop at the detector, whatever happens after it its never going to be detected right?

Or I am understanding it wrong?

gfardell commented 2 years ago

Physically yes (if you could put the detector in the object), but in terms of the meta-data parallel beam configuration often leave the detector at the origin as moving it doesn't change the magnification. And some cone-beam meta data will have the detector at the origin and effective pixel size is then the same as voxel size.

I guess I was caught out because your Siddon fp and backprojectors seem to calculate over the full reconstruction volume regardless of detector placement, it's just the interpolation projector that clips the ray.

I've changed the CIL wrappers as that's at least our expected behaviour. Feel free to close it at your end!

AnderBiguri commented 2 years ago

TIGRE expected behaviour is that the geometry is physically correct, so if you put the detector inside the VOI it becomes "unexpected behaviour". The only reason Siddon works is because the algorithm iterates until the last slice, rather than the detector.

In nay case, I am more in favour on deciding that Siddon does this wrong rather than the interpolated one, as there is no physical way that you would detect rays past the detector, yet there exists clinical X-ray applications (not CT, of course) where the detector is inside the body (e.g. dental radiography).

In any case, solution is easy, just put the detector outside :)