This package contains an interface and type hierarchy for image reconstruction algorithms and their parameters, together with associated utility tools.
Within Julia, use the package manager:
using Pkg
Pkg.add("AbstractImageReconstruction")AbstractImageReconstruction is not intended to be used alone, but together with an image reconstruction package that implements the provided interface, such as MPIReco.jl.
Concrete construction of reconstruction algorithms depends on the implementation of the reconstruction package. Once an algorithm is constructed with the given parameters, images can be reconstructed as follows:
using AbstractImageReconstruction, MPIReco
params = ... # Setup reconstruction parameter
algo = ... # Setup chosen algorithm with params
raw = ... # Setup raw data
image = reconstruct(algo, raw)Once an algorithm is constructed it can be transformed into a RecoPlan. These are mutable and transparent wrappers around the nested types of the algorithm and its parameters, that can be stored and restored to and from TOML files.
plan = toPlan(algo)
savePlan(MPIReco, "Example", plan)
plan = loadPlan(MPIReco, "Example", [MPIReco, RegularizedLeastSquares, MPIFiles])
algo2 = build(plan)
algo == algo2 # trueUnlike concrete algorithm instances, a RecoPlan may still be missing certain values of its fields and it can encode the structure of an image reconstruction algorithm without concrete parameterization.
It is also possible to attach listeners to RecoPlan fields using Observables.jl, which call user-specified functions when they are changed. This allows specific RecoPlans to provide smart default parameter choices or embedding a plan into a GUI.