Glossary#
Some terms used in TomoPhantom documentation can be ambiguous, here we provide explanations on that terminology.
Model#
When using model term, the authors normally refer to a composite phantom from the pre-defined phantom model that is stored in Library files. The term can be applied both to a phantom and projection data that can be generated for it using the same model. Normally, the model consists of a number of elementary Object (s).
For reproducibility sake, one can re-use the same model and refer to it while testing an algorithm. There is no need to save the phantom on the disk as it can be quickly generated. There is a variety of models exist, for instance, 2D/3D versions of Shepp-Logan, Defrise, and QRM phantoms. The reserved numbers for stationary models should be in the range of [0-99] as higher numbers are reserved for Dynamic model.
In terms of the API provided, please look at Model()
in tomophantom.TomoP2D()
for 2D phantoms and tomophantom.TomoP3D()
for 3D phantoms, respectively.
Dynamic model#
Dynamic phantoms or time-lapse phantoms are the extensions over the existing 2D and 3D phantoms that are provided as models in Library files. The are implemented to test algorithms that involve motion through a some kind of structural or intensity change in time. So far only simple linear changes can be programmed, but, in theory, this feature can be extended to accept more complex motion patterns. In addition, if projection data is simulated, the change happens in-between scans, i.e., the motion is NOT encoded into projections. This can be also a desirable feature if more realistic change needs to be modelled and tested through reconstruction algorithms. More information can be found in Dynamic phantoms API.
Object#
An object is an elementary function that defines a phantom or contributes to the projection data. TomoPhantom offers a variety of simple geometrical objects, through which a phantom is composed. Using objects allows you to build customised phantoms quicker, which later can be stored as a Model in Library files. It also offers a possibility to build Random Phantoms, i.e., where parameters are changing stochastically.
TomoPhantom provides a dedicated Object API, if one would like to build customised phantoms without the use of the library files.
Random Phantoms#
Random phantoms are the phantoms that are built using Object API where parameters of the objects changing by sampling from some
probability distribution. In TomoPhantom, there are functions that can help you to build phantoms that are packed with
circular objects of different types, e.g., a 2D or 3D foam phantom. Please see tomophantom.generator
.
Library files#
The library files are the text files which are provided to users with the downloaded repository or an installation.
Parameter for different objects are stored in the files resulting in the stacked phantom to be built reproducibly.
Specifically, 2D phantoms and (2D + time) dynamic phantoms are stored in the Phantom2DLibrary.dat
file, while 3D phantoms and (3D + time) dynamic
phantoms are stored in the Phantom3DLibrary.dat
file. See more how to Use Phantom Libraries.
To understand how object parameters stored so that one can edit or add a new model, please see Library files API.
The library files are located in the tomophantom/phantomlib
in your installed location
or in the Github repository.