-
Notifications
You must be signed in to change notification settings - Fork 10
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
Oblique CT supporting #34
Comments
Hello. There was not a demo script for laminography, but I just added one to my current development branch. You can find it on the champley_dev branch here. This will be merged into the main branch in about a week when I am done with my next round of changes. Take a look at what I posted and let me know if you have any questions. |
Yep, I can explain. This is caused by two issues. The first issue is simple. I set the detector size to only fit that object if the laminography angle was less than 10 degrees. If you want to try bigger angles, you have to use a bigger detector. You should see a line in the script that says Once you make this change things will look better, but you will still see artifacts. These artifacts are called "cone beam artifacts". Basically, for CT to work, one must collect projections that are tangent (or nearly tangent) to all the strong edges in the object. Since none the projections in laminography measure tangent to the top and bottom edges of the cylinder, you will see strong artifacts. This is a little bit related to the type of phantom I chose. I could have chosen a phantom without sharp edges, but I also wanted to showcase how bad laminography images can look. That said, 40 degrees is a large laminography angle. Do you really need such a large angle? Now let's talk about methods to suppress these cone-beam artifacts. One easy method is to restrict your volume to cover exactly the support of your object. In this case, that's about 28 slices (use leapct.set_numZ(28)). Next you can try regularized reconstruction to mitigate these artifacts. In LEAP you could try TV or histogram sparsity- these tend to work well. For a description of the cone-beam artifact, see Section 2.1 and Figure 1 of the following paper (one of my papers actually): I also wrote a paper that describes a heuristic method to mitigate cone-beam artifacts. That paper is here: Hope this helps. |
Yes, you can rotate the detectors as well. The easiest way I know to do this is with quaternions. Add the following code just before the set_modularbeam command. from scipy.spatial.transform import Rotation as R Note that if you rotate the detectors more than 5 degrees, the FBP reconstruction will no longer work, so you'll have to do iterative reconstruction. |
Thanks for your nice guidance. Now I can see the tilted geometry of CBCT and some slices too with SART algorithm. |
Do you have any more questions related to this issue? If you do, I'd be happy to leave it open and answer more questions, but if not, can I close this issue? |
I'm going to close this issue because of inactivity and because I think I answered all of your questions, but feel free to open a new issue if something comes up. |
Is there any demo example of oblique CBCT(Laminography CT) at LEAP packet?
The text was updated successfully, but these errors were encountered: