Skip to content
This repository has been archived by the owner on Mar 27, 2020. It is now read-only.

Geometry that has a wobbly rotation axis #7

Open
adriaangraas opened this issue Dec 11, 2018 · 2 comments
Open

Geometry that has a wobbly rotation axis #7

adriaangraas opened this issue Dec 11, 2018 · 2 comments

Comments

@adriaangraas
Copy link

Hi,

The projection dataset I'm using has a center of rotation that alters slightly with every second projection image. I can preprocess the data by shifting the data a bit, but then I'll have to cut off the sides of the projection images.

TomoPy deals with the problem by allowing some center kwargs in the reconstruction algorithm.

What do you think about this? I'll leave this issue open as its not an urgent one, but might implement it in some future.

Greets, Adriaan

@jwbuurlage
Copy link
Member

jwbuurlage commented Dec 12, 2018

For a 'wobbly rotation axis', your geometry is not perfectly circular. Luickly, you can use ParallelVec or ConeVec geometries to fix this. In these Vec geometries, you explicitly give the source/detector parameters for each projection independently.

This puts the alignment responsibility at the adapter. For now, I think this is where it should be done instead of in SliceRecon. Concretely (for PB):

  • Implement a function that takes such a center parameter in addition to the standard constructor arguments for a ParallelBeamGeometry, and generates this list of vectors according to the specification in the ASTRA documentation under parallel3d_vec.
  • Send a ParallelVecGeometryPacket with this list of vectors, instead of a ParallelBeamGeometryPacket.

@adriaangraas
Copy link
Author

For now that fixes the problem, as I have a dataset where I can provide such a vector-geometry ahead of the projections. In real-time scanning we don't have this information.

Now that I think of it, do you think it is necessary to send all angles, and geometry information, ahead of time? If we would send most information (such as angle, positions, center translation) per projection packet, we might also be able to prepare for eventual hiccups in irregular angles, skipped projections etc. that might occur in practical situations.

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

No branches or pull requests

2 participants