AbstractImageReconstruction

Build Status

This package contains an interface and type hierarchy for image reconstruction algorithms and their parameters, together with associated utility tools.

Installation

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

Usage

Concrete construction of reconstruction algorithms depend on the implementation of the reconstruction package. Once an algorithms is constructed with the given paramters, images can be reconstructed as follows:

using AbstractImageReconstruction, MPIReco

params = ... # Setup reconstruction paramter
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 paramters, 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 # true

Unlike 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, that call user-specified functions if they are changed. This allows specific RecoPlans to provide smart default paramter choices or embedding a plan into a GUI.