Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Curved 2D detector support #233

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Curved 2D detector support #233

wants to merge 2 commits into from

Conversation

AnderBiguri
Copy link
Member

This PR adds a function to "flatten" a curved detector.

Missing

  • test with real data
  • Add demo

@yliu88au
Copy link
Contributor

yliu88au commented Jan 2, 2021

I have done these conversions in a slightly different way. For my real world problem, the curved detector arrays are not exactly on a circle, rather, they are piece-wise linear on a curve (each piece-wise linear is corresponding to a detector module, many modules consist of the arc (blue in the graph)). I found the best way is to project all detector pixel on to a linear (wall, red in the graph) array, then interpolate the projection to a (larger) equal desistance linear array, as showing in the following graph. So it is basically interpolate the original sinogram to a slightly larger sinogram, before feeding into Tiger. It works well.

projection

@AnderBiguri
Copy link
Member Author

AnderBiguri commented Jan 2, 2021

Hi @yliu88au, I think this is supposed to be doing the the same thing (that is what I intended to code anyway!) , but I haven't been able to test it yet because I don't have the data for it yet (it's coming). Well, in this case mine is on a curve but in a circle equidistant to the source.

I think my code assumes a continuous arc, and ignores that each detector pixels is flat, to allow for interpolation in between pixels. Unsure how much that will affect the results.

I'd be more than happy to have a look at your way of doing it and try to incorporate it to Tigre, but you'd need to share some data with me so I can test it too (can be done privately).

@AnderBiguri
Copy link
Member Author

@yliu88au on top of the conversion to flat, I am also going to try to add data loaders for the machine that outputs it.

If your lab based system has a somehow standard way of outputting data i.e. Not just some raw data without any info, and you thunk it can be useful for others, we can also work on adding it to Tigre

@yliu88au
Copy link
Contributor

yliu88au commented Jan 3, 2021

@AnderBiguri Unfortunately, the 2D data is from a third party and I cannot disclose it at all. My lab data are from flat panel detectors (3D), so it is irrelevant here.

@AnderBiguri
Copy link
Member Author

@yliu88au absolutely no problem :)

@AnderBiguri
Copy link
Member Author

This is on hold until I can get data to test it.

@AnderBiguri
Copy link
Member Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants