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

Discussion on flying focal point #621

Closed
Zhentao-Liu opened this issue Dec 25, 2024 · 9 comments
Closed

Discussion on flying focal point #621

Zhentao-Liu opened this issue Dec 25, 2024 · 9 comments

Comments

@Zhentao-Liu
Copy link

Zhentao-Liu commented Dec 25, 2024

Is your feature request related to a problem? Please describe.
I recently process a CBCT scan with flying focal point, i.e., different focal points for odd/even frames. Actual focal point usually deviates from the ideal one, and such deviation could be described by "geo.offdetector". Although "geo.offdetector" could be input as an array to describe per frame focal point, but it reports bugs when running FDK algorithm. In FDK func of single_pass_algorithms.py, TIGRE currently performs zeropadding and perweighting2 first if "geo.offdetector" exsist, as shown in code. However, these two functions only accept 2-d vector input right now.

Describe the solution you'd like
Simple reimplementation is needed to make zeropadding and perweighting2 function accept array input.

Additional context
BTW, I wanna ask the unit of "geo.offdetector". I think it should be millimeter.

@AnderBiguri
Copy link
Member

Apologies @Zhentao-Liu , this took much longer to fix than expected, I was very busy.
May I ask again what the issue is? re-reading your text, its not very clear what you want. You say that geo.offDetector only accepts 2-d vector as input. What is the alternative you are looking for. What is what you want them to accept?

For your question in the end: the units are irrelevant, as long as you use the same units as in the rest of the geometry, such as DSD, geo.sVoxel etc.

@Zhentao-Liu
Copy link
Author

Thanks for your reply. Maybe a little hard to solve this problem. Actually, I try to handle with curve-plane cbct scan with FFS. And I currently resort to LEAP for solution. It supports curve-plane geometry but do not support FFS. :<, pity. I temporally close this issue, and If I have any further questions I would re-open it again. Thanks anyway.

@AnderBiguri
Copy link
Member

@Zhentao-Liu If you explain how FFS happens (I don't know) I may be able to explain how it may be done with TIGRE.

@Zhentao-Liu
Copy link
Author

Zhentao-Liu commented Jan 26, 2025

That would be great. Would you simply describe it. Thanks! It seems that FFS is commonly used in current commecial CT scanner.

@AnderBiguri
Copy link
Member

@Zhentao-Liu Sorry, maybe you misunderstood. I am asking for you to explain or give me references on how FFS works in commercial CT scanners, as I don't know. Otherwise I can't tell how to implement/describe it in TIGRE.

@Zhentao-Liu
Copy link
Author

The basic idea is simply as follows. For even/odd frame, the focal spot is slightly different. Assume the physical center point is at [0, 0]pixel, for odd frame, the focal spot is at [0.25, 0]pixel for example, and for even frame, the focal spot is at [-0.25, 0]pixel for example. Then actually pixel spacing is half of the original physical pixel spacing, the minimal reconstruction voxel spacing could also be half, so FFS improve spaital resoution.

@AnderBiguri
Copy link
Member

@Zhentao-Liu

so, something like:

geo.offDetector = np.zeros((2,len(angles))
geo.offDetector[0,::2] =-0.25
geo.offDetector[0,1::2]=0.25

?

@Zhentao-Liu
Copy link
Author

Zhentao-Liu commented Jan 26, 2025 via email

@AnderBiguri
Copy link
Member

Are there? try it and do report if you find any please!

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

No branches or pull requests

2 participants