Giter Club home page Giter Club logo

tomophantom's Introduction




TomoPhantom [1] is a toolbox written in C language to generate customisable 2D-4D phantoms (with a temporal capability) and their analytical projection data for various image processing and machine learning tasks (reconstruction, denoising, deblurring, classification, etc.).

DOI


About TomoPhantom

TomoPhantom is recommended for various image processing tasks that require extensive numerical testing: image reconstruction, denoising, deblurring, etc. Specifically, TomoPhantom is best-suited for testing various tomographic image reconstruction (TIR) methods. For TIR algorithms testing, the popular Shepp-Logan phantom is not always a good choice due to its piecewise-constant nature. This toolbox provides a simple modular approach to efficiently build customisable 2D-4D phantoms consisting of piecewise-constant, piecewise-smooth, and smooth analytical objects.

What TomoPhantom can do:

#1589F0 Generate 2D models made of Gaussians, parabolas, ellipses, cones, rectangulars

#1589F0 Generate 3D models and 4D (temporal) extensions of them

#1589F0 Calculate analytical Radon transforms of models and also their numerical projections

#1589F0 Model Gaussian or Poisson noise and some typical acquisition artifacts

#1589F0 Perform 2D-4D reconstructions avoiding 'Inverse Crime'. Reconstruct with implemented FBP and Fourier slice method or using ASTRA-toolbox or TomoPy packages.

TomoPhantom prerequisites:

  • Python (tested ver. 2.7/3.5); Cython OR
  • MATLAB
  • C compilers: GCC/MinGW/TDM-GCC/Visual Studio

Other (optional) dependencies:

Installation:

Python (conda-build is preferrable)

	conda build conda-recipe --numpy 1.12 --python 3.5
	conda install tomophantom --use-local --force

Matlab

	run compile_mex_linux.m % to compile CPU modules on linux
	run compile_mex_windows.m % to compile CPU modules on Windows

Package library modules:

  • Phantom2DLibrary.dat and Phantom3DLibrary.dat are editable text files with parametrised models (2D/3D versions of Shepp-Logan, Defrise, and QRM phantoms are included). The generation of new phantoms is highly encouraged, please submit them through pull requests or via e-mail bellow.
  • See MATLAB and Python demos

License:

TomoPhantom is released under Apache License v.2. Note that some demos where 'ASTRA-toolbox' is used are of GPLv3 license and also BSD-3 license for TomoPy package.

Related software projects on GitHub:

  • xdesign XDesign is an open-source Python package for generating configurable simulation phantoms for benchmarking tomographic image reconstruction.
  • syris Syris (synchrotron radiation imaging simulation) is a framework for simulations of X-ray absorption and phase contrast dynamic imaging experiments, like time-resolved radiography, tomography or laminography.

References:

[1] D. Kazantsev et al. 2018, TomoPhantom, a software package to generate 2D-4D analytical phantoms for CT image reconstruction algorithm benchmarks, Software X, Volume 7, January–June 2018, Pages 150–155

[2] D. Kazantsev, V. Pickalov "New iterative reconstruction methods for fan-beam tomography", IPSE, 2017

Applications:

Software related questions/comments please e-mail to Daniil Kazantsev at [email protected]

tomophantom's People

Contributors

dkazanc avatar paskino avatar srikanthnagella avatar decarlof avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.