This project is a part of the larger X-ray tomographic reconstruction toolbox comprised of flexDATA, flexTOMO and flexCALC. flexTOMO provides a wrapper around the GPU-accelerated tomographic reconstruction toolbox ASTRA. The main purpose of this project is to provide an easy way to use cone-beam forward- and back-projectors. Another purpose is to collect various algebraic reconstruction algorithms, providing support for large disk-mapped arrays (memmaps) and subsets that allow to both accelerate convergence and to save RAM.
We recommend that the user installs conda package manager for Python 3.
conda install flextomo -c cicwi -c astra-toolbox -c nvidia
pip install flextomo
git clone https://github.com/cicwi/flextomo.git
cd flextomo
pip install -e .
To learn about the functionality of the package check out our examples/
folder. Examples are separated into blocks that are best to run in VS Code / Spyder environment step-by-step.
flexTOMO is comprised of two modules:
flextomo.phantom
: A very simple modelue with a few phantom object generatorsflextomo.project
: Main module that contains forward- and back-projectors, and algebraic reconstruction algorithmsTypical usage:
# Import:
import numpy
from flextomo import project
from flextomo import phantom
# Initialize projection images:
proj = numpy.zeros([512, 361, 512], dtype = 'float32')
# Define a simple projection geometry:
geom = geometry.circular(src2obj = 100, det2obj = 100, det_pixel = 0.01, ang_range = [0, 360])
# Create phantom and project into proj:
vol = phantom.abstract_nudes([512, 512, 512], geom, complexity = 10)
# Forward project:
project.forwardproject(proj, vol, geometry)
See also the list of contributors who participated in this project.
Contributions are always welcome. If you have any issues, questions, or remarks, then please open an issue on GitHub.
This project is licensed under the GNU GENERAL PUBLIC License - see the LICENSE.md file for details