Dynamic¶
TomoPhantom¶
The dynamic phantom model was generated and customized for two spatial variables \(x,y\) by employing the TomoPhantom toolbox [B22]. It contains three types of the particle motion: rotation, shifting, and expansion. In addition to different motion types, we also analyze different motion velocities chosen according to the pixel size and the time spent for measuring projections in the interval of the size \(\pi\).
The movement of the particles is captured in 8 intervals of each consisting by angular views across \(\pi\). The model has sizes \((N,N,N_t)=(256,256,8)\), and the projection data has sizes \((N_\theta,N)=(128\times 8,256)=(1024,256)\), where \(128\) is the number of projections for covering the interval \([0,\pi)\). Reconstructions are also performed by using the standard FBP method for intervals \([0,\pi)\), \([\pi,2\pi)\), and so on, and by the proposed time-domain decomposition + regularization approach [B45] with \(M=16\) Fourier basis functions for decomposition. Motion artifacts in the FBP reconstruction are clearly visible and significantly distort reconstructions with increasing the motion velocity. The method of Time-domain decomposition + regularization in turn suppresses all motion artifacts.
Reconstruction by the method with suppressing motion artifacts requires module rectv that can be installed from https://github.com/math-vrn/rectv_gpu.
To perform reconstruction use the rec_phantom_00015.py
python script:
python rec_phantom_00015.py phantom_00015_00000.tiff
Projection data, ground truth, and reconstructions: phantom_00015
Time frame |
Ground Truth |
Gridrec |
dec+TV |
0 |
|||
1 |
|||
2 |
|||
3 (fast) |
|||
4 |
|||
5 |
|||
6 |
|||
7 |
pt4 Phantoms¶
The following phantoms have been created using pt4 version 1.0.0. pt4 is a phantom description tool which is specialised for generating time-evolving 4D phantoms. More information can be found on the linked code repository or in the software overview
This data has been generated with
pt4.exe -p -v (path to .pt4 without extension)
To load the phantom data sets into Python use
pt4_volume.py
for volumes as:
pt4_volumes.py (volume file name)
and
pt4_projection.py
for projections as:
pt4_projection.py (projections directory name)
Spheres Translating¶
The spheres translating phantom consists of 16 spheres of equal and constant attenuation each moving independently. The phantom is sampled at 10 time steps with volumes of size \(256^3\). The projection data consists of 400 projections with a fixed angle and time step per projection and at size \(256^2\). The projections cover the range \([0,8\pi)\) where successive revolutions capture the interleaving angles.
https://g-c23ae.fd635.8443.data.globus.org/spheres_translating.zip
2D projection of phantom. Blue, \(t = 0\). Orange, \(t = 1\) |
Bread Baking¶
The bread baking phantom takes inspiration from a loaf of bread rising during baking. Throughout its evolution it expands while voids appear that also expand. In its final state the phantom has seven voids. To emulate conservation of mass, the phantom reduces in density as it expands. This manifests as phantom’s main ellipsoid decreasing in attenuation proportionally to its volume ( \(\mu(t) = \mu(0) \frac{V(t)}{V(0)}\), where \(\mu(t)\) and \(V(t)\) are the attenuation and volume at time \(t\) ). The phantom is sampled at 10 time steps with volumes of size \(256^3\). The projection data consists of 400 projections with a fixed angle and time step per projection and at size \(256^2\). The projections cover the range \([0,8\pi)\) where successive revolutions capture the interleaving angles.
https://g-c23ae.fd635.8443.data.globus.org/bread_baking.zip
Time |
0.0 |
0.2 |
0.4 |
0.6 |
0.8 |
1.0 |
ZX Slice |
Tensile Fracture¶
The tensile failure phantom emulates a sample undergoing a tensile test to failure. This phantom exhibit both motion and fracturing dynamics. In the first half of the test, the sample stretches vertically and contracts in radius such that its volume remains constant. At \(t = 0.5\), the sample fractures and the two halves begin to move away from each other. The phantom is sampled at 20 time steps with volumes of size \(256^3\). The projection data consists of 400 projections with a fixed angle and time step per projection and at size \(256^2\). The projections cover the range \([0,8\pi)\) where successive revolutions capture the interleaving angles.
https://g-c23ae.fd635.8443.data.globus.org/tensile_fracture.zip
Time |
0.0 |
0.2 |
0.4 |
0.6 |
0.8 |
1.0 |
ZX Slice |
Brazil Crush¶
The Brazil crush phantom represents a sample undergoing the Brazilian test. In this test a cylindrical sample is placed between two jaws which apply compressive load to the sample. This results in a tensile load on the sample that increases until fracture. In the phantom, multiple fractures appear and close up. For simplicity, the jaws have been modelled nonphysically as they form a contiguous piece of material, however the contact points between the jaws and the sample still close with time. The phantom is sampled at 10 time steps with volumes of size \(256^3\). The projection data consists of 400 projections with a fixed angle and time step per projection and at size \(256^2\). The projections cover the range \([0,8\pi)\) where successive revolutions capture the interleaving angles.
https://g-c23ae.fd635.8443.data.globus.org/brazil_crush.zip
Time |
0.0 |
0.2 |
0.4 |
0.6 |
0.8 |
1.0 |
ZX Slice |
Fluid Flow¶
The fluid flow phantom gives an example of fluid flowing through a porous medium. This has been implemented as the fluid level rising uniformly in time inside the porous medium. The phantom is sampled at 5 time steps with volumes of size \(256^3\). The projection data consists of 400 projections with a fixed angle and time step per projection and at size \(256^2\). The projections cover the range \([0,8\pi)\) where successive revolutions capture the interleaving angles.
https://g-c23ae.fd635.8443.data.globus.org/fluid_flow.zip
Time |
0.0 |
0.2 |
0.4 |
0.6 |
0.8 |
1.0 |
ZX Slice |