gschramm / parallelproj

code for parallel TOF and NONTOF projections
MIT License
30 stars 9 forks source link

Is 0.1mm the limitation of reconstruction spacing? #92

Closed SS99aaNN closed 2 weeks ago

SS99aaNN commented 2 weeks ago

Dear developer Recently, I have been using the parallelproj function to implement FDK reconstruction for CT images. However, during my debugging process, I encountered some issues related to the setting of image spacing in the reconstructed images. when i reconstructed the projection in 512x512x512 with 0.2x0.2x0.2mm, i got a normal result, which is correct. image However, when i turned to 1024x1024x1024 with 0.1x0.1x0.1mm, there are some artifacts in the result, like this. image and here is the comparison of these two image. image All reconstructions I have performed so far were based on GPU implementations. I also attempted CPU-based reconstructions and found that the results obtained from both methods were identical. Besides, i also tried to reconstruct in 512x512x512 with 0.1x0.1x0.1mm, it also showed the same artifact in reconstructed image. image I am considering whether it might be due to the voxel being too small, making it difficult to calculate the interaction length between projections? If this is the case, does the voxel spacing have a fixed boundary value to avoid this artifact, or will it vary depending on the different computing devices used? Thank you in advance for your patient response.

Best Regards Sean

gschramm commented 2 weeks ago

Hi Sean,

happy to hear that parallelproj is also being used for CT :) There are no limits on voxel sizes for the parallelproj projectors.

However, you have to keep in mind that the Joseph projector calculates line integrals by stepping through the planes and using bilinear interpolation between the 4 voxels closest to the intersection point on the line and the plane. There is no calculation of an intersection length. See here for details: https://ieeexplore.ieee.org/document/4307572

This can lead to "strip artifacts" in the back projection when you use a voxel size that is much smaller compared to the sampling of the LORs.

But I am not sure whether this explains your observed artifact.

A good test to execute would be to back project a sinogram full of ones, into an images using 0.2mm and 0.1mm voxel and to look at the resulting image.

Note that for CT recon (depending on the voxel size), ray-driven projectors (such as Joseph or Siddon) are inferior compared to distance driven projectors. This is e.g. shown in this publication: https://ieeexplore.ieee.org/document/1239600

SS99aaNN commented 2 weeks ago

i try reconstructed with all ones sinogram, artifact showed in both 0.1 and 0.2mm. image it looks like the artifacts in the publication of the difference in ray driven and distance driven projectors. i guess maybe this is the reason. thanks again for your advice. maybe i should try distance driven projectors in the future.

gschramm commented 2 weeks ago
  1. Glad to see I could help. Just to be sure: The artifacts are easier to see in a simple back projection (which is not a reconstruction).
  2. If you feel you need the distance-driven, I think based on the implementations for the Joseph writing a distance driven is not too hard - but unfortunately I don't have time for that. If you feel like it and you want to share it, let me know.