Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Cone beam with rotated stage/detector #39

Unanswered
andrewerf asked this question in Q&A
Discussion options

Hello and thank you for the project!

I am trying to familiarize myself with the CSYS and possible transformations. Could you please point me out to a way to specify the rotation of the detector around the Y axis in cone-beam setup? Actually, we have the stage rotated, but it seems to me that rotating the detector and the stage should give the same results.

In the picture below, the blue arrow shows how we want to rotate the detector:
Screenshot_2024年05月22日_18-20-09

You must be logged in to vote

Replies: 3 comments 1 reply

Comment options

Hello. Sure, I can help with that.

Our cone-beam geometry is quite flexible, but does not handle detector rotations, so you'll have to use our so-called modular-beam geometry. Specifying a modular-beam geometry is fairly laborious, so I would recommend starting with a cone-beam specification, converting it to modular-beam, and then rotating the detector.

So start with something like what you see in the first demo script d01_standard_geometries.py
and then after the leapct.set_conebeam command insert the following:
leapct.convert_to_modularbeam()
leapct.rotate_detector(rotationAngleInDegrees)

where rotationAngleInDegrees is the angle of rotation for the detector in degrees. Hope this helps.

You must be logged in to vote
1 reply
Comment options

Thank you, it works!
And if I need to, e.g., shift the source and the detector relative to the rotation axis, I need to proceed with a modular-beam setup as well, as described in d04_modularbeam.py? I haven't found a built-in function though, so it seems I will need to modify parameters (sourcePositions, moduleCenters, colVectors, rowVectors) manually for that purpose.

Comment options

Ya, that script provides a nice example. If all you are doing is performing small deviations of the geometry, look at this demo script d25_detector_dithering.py.

You must be logged in to vote
0 replies
Comment options

I actually found a bug in the rotate_detector() function. This is fixed in the release that I just published. Please update LEAP.

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet

AltStyle によって変換されたページ (->オリジナル) /