Small Reconstruction Package for Radon projections

In this example we will implement a small image reconstruction package using AbstractImageReconstruction.jl. Our reconstruction package OurRadonreco aims to provide direct and iterative reconstruction algorithms for Radon projection data.

Most of the desired functionality is already implemented in various Julia packages. Our reconstruction package now needs to properly link these packages and transform the data into the appropriate formats for each package.

Note

The example is intended for developers of reconstruction packages that use AbstractImageReconstruction. End-users of such a package should consult the documentation of the concrete reconstruction package itself.

Installation

We can install AbstractImageReconstruction using the Julia package manager:

using Pkg
Pkg.add("AbstractImageReconstruction")

This will download and install AbstractImageReconstruction.jl and its dependencies. To install a different version, please consult the Pkg documentation. In addition to AbstractImageReconstruction.jl, we will need several more packages to get started, which we can install the same way.

Outline

  1. Radon Data: Familiarize with RadonKA.jl, define a small data format for 3D time-series sinograms, and create the inverse problem

  2. Interface: Define abstract types and understand what needs to be implemented to interact with AbstractImageReconstruction

  3. Direct Reconstruction: Implement reconstruction algorithms using backprojection and filtered backprojection

  4. Direct Reconstruction Result: Use the implemented algorithm

  5. Iterative Reconstruction: Implement an iterative reconstruction algorithm with more complex parametrization

  6. Iterative Reconstruction Result: Use the algorithm and demonstrate RecoPlans for configuration, saving, and loading algorithms as templates

For an even more detailed reconstruction package we refer to the magnetic particle imaging reconstruction package MPIReco.jl.