Implements a physics-based laminography operator which uses weights and indices instead of the Fourier slice theorem.
Approach
The radon operation is approximated by projecting clusters of points in each voxel onto each projection plane. Imagine placing a bucket for each pixel on the detector plane and then dropping a ball from the position of each object voxel. Each ball has a weight corresponding to how much of a voxel it represents.
This implementation contains the key aspects of 'memcentric tomography' such as the ability to switch indexing systems, computing the weights and indices which relate volume to projection, and the ability to divide the grid.
Pre-Merge Checklists
Submitter
[x] Write a helpfully descriptive pull request title.
[x] Organize changes into logically grouped commits with descriptive commit messages.
[x] Document all new functions.
[x] Write tests for new functions or explain why they are not needed.
Purpose
Implements a physics-based laminography operator which uses weights and indices instead of the Fourier slice theorem.
Approach
The radon operation is approximated by projecting clusters of points in each voxel onto each projection plane. Imagine placing a bucket for each pixel on the detector plane and then dropping a ball from the position of each object voxel. Each ball has a weight corresponding to how much of a voxel it represents.
This implementation contains the key aspects of 'memcentric tomography' such as the ability to switch indexing systems, computing the weights and indices which relate volume to projection, and the ability to divide the grid.
Pre-Merge Checklists
Submitter
yapf
to format python code.Reviewer