https://github.com/jtschwar/tomo_tv
C++ library for Regularized 2D and 3D Tomography Reconstructions.
https://github.com/jtschwar/tomo_tv
3d-reconstruction cuda inverse-problems regularization tomography
Last synced: about 1 year ago
JSON representation
C++ library for Regularized 2D and 3D Tomography Reconstructions.
- Host: GitHub
- URL: https://github.com/jtschwar/tomo_tv
- Owner: jtschwar
- Created: 2019-05-07T00:36:41.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-12-15T20:43:17.000Z (over 1 year ago)
- Last Synced: 2025-04-03T23:32:51.119Z (about 1 year ago)
- Topics: 3d-reconstruction, cuda, inverse-problems, regularization, tomography
- Language: Jupyter Notebook
- Homepage:
- Size: 174 MB
- Stars: 17
- Watchers: 2
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# tomo_TV
Python and C++ toolbox for tomographic data processing and developing iterative reconstruction algorithms. Specifically, this repository provides a selection of various data models and regularizers for simple python development. Tomo_TV also contains supports experiments where data is 'dynamically' collected to facilitate real-time analysis of tomograms.
## Features
2D and 3D reconstruction algorithms implemented purely in C++ wrapped in Python functions. These scripts can either perform simulations (sim) or reconstruct experimental (exp) projections. Available algorithms include:
* Filtered Backprojection (FBP)
* Simultaneous Iterative/Algebraic Reconstruction Technique (SIRT/SART)
* Conjugate Gradient - Least Squares (CGLS)
* KL-Divergence / Expectation Maximization for Poisson Limited Datasets
* FISTA [doi: 10.1137/080716542](https://epubs.siam.org/doi/10.1137/080716542)
* ASD - POCS [doi: 10.1088/0031-9155/53/17/021](https://iopscience.iop.org/article/10.1088/0031-9155/53/17/021)
* (TODO: OGM and FASTA )
We provide a sample jupyter notebook ([demo.ipynb](demo.ipynb)) which outlines the reconstruction process for all these algorithms both with simulated and experimental datasets.
## Installation
To clone the repositiory and all the core dependencies run the following line in the terminal:
` git clone --recursive https://github.com/jtschwar/tomo_TV.git`
For GPU accelerated reconstruction algorithms, we recomend using a Linux operating system. C++ accelerated operations is available on all three operating systems (Windows, macOS, and Linux).
Instructructions for building can be found in [BUILDING.MD](BUILDING.md).
## Multi-GPU Capabilities
tomo_TV can be used by running in parallel across multiple GPU devices on a personal computer or compute nodes in a high-performance computing cluster. In order to initiate a parallel run on multiple GPUs, MPI needs to be available.
## References
If you use tomo_TV for your research, we would appreciate it if you cite to the following papers:
- [Real-time 3D analysis during electron tomography using tomviz](https://www.nature.com/articles/s41467-022-32046-0)
- [Imaging 3D Chemistry at 1 nm resolution with fused multi-modal electron tomography](https://www.nature.com/articles/s41467-024-47558-0)
## Contribute
Issue Tracker: https://github.com/jtschwar/tomo_TV/issues
Feel free to open an issue if you have any comments or concerns.
## Contact
email: [jtschw@umich.edu](jtschw@umich.edu)
website: [https://jtschwar.github.io](https://jtschwar.github.io)