-
Notifications
You must be signed in to change notification settings - Fork 196
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
Comments
Apologies @Zhentao-Liu , this took much longer to fix than expected, I was very busy. 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. |
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. |
@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. |
That would be great. Would you simply describe it. Thanks! It seems that FFS is commonly used in current commecial CT scanner. |
@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. |
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. |
so, something like:
? |
yes you are right. are there would be some bugs when running fdk directly.
…---Original---
From: ***@***.***>
Date: Sun, Jan 26, 2025 23:37 PM
To: ***@***.***>;
Cc: "Zhentao ***@***.******@***.***>;
Subject: Re: [CERN/TIGRE] Discussion on flying focal point (Issue #621)
@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
?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Are there? try it and do report if you find any please! |
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.
The text was updated successfully, but these errors were encountered: