What is SNARK14?
The reconstruction problem has arisen in a large number of scientific
fields (including computerized tomography, electron microscopy, radiology,
radio astronomy and holography). Many different methods (algorithms)
have been suggested for its solution.
SNARK14 is a programming system for the
reconstruction of 2D images from 1D projections. It is designed
to help researchers interested in developing and evaluating
In the area of image reconstruction, researchers often desire to
compare two or more reconstruction techniques and assess their relative
merits. SNARK14 provides a uniform framework
in which to implement
algorithms and evaluate their performance. SNARK14 has been designed
to treat both parallel and divergent projection geometries and can
create test data for use by reconstruction algorithms. A number of
frequently used reconstruction algorithms are incorporated.
New in SNARK14
SNARK14 is an updated version of
SNARK09. The following are the major advances
that are incorporated into the SNARK14 package:
- capability of superiorizing iterative algorithms to improve peformance;
- capability of applying the Simultaneous Algebraic Reconstruction Technique (SART) to projection data;
- added several new options to the statistical evaluation;
- added several new stopping criteria.
SNARK14 is a descendant of earlier releases of
SNARK, the first one of which was written by Richard Gordon in 1970
SNARK77 and SNARK89
were specifically designed to help with the problem of reconstructing
cross-sections of the X-ray absorption coefficient distribution inside
the body from X-ray projections. SNARK93
extended this capability to include positron emission tomography, PET.
The SNARK93 programming system was
implemented in FORTRAN77. It was designed to
- be capable of dealing with many modes of data collection
(different geometrical arrangements of X-ray source and detectors,
different X-ray spectra, etc.);
- contain many of the published reconstruction algorithms;
- be capable of generating mathematically described phantoms
that realistically represent various crosssections of the human body,
together with mathematically simulated projection data of these
crosssections reflecting the characteristics (including noise) of
various possible tomography devices;
- contain subroutines to carry out work which appears to be common
to many reconstruction algorithms, so as to ease the incorporation
of additional (user-defined) algorithms;
- be capable of a variety of display modes;
- contain routines for the statistical evaluation of reconstruction
- provide a methodology for testing for statistically significant
differences between reconstruction algorithms.
The previous version, SNARK09,
was implemented in C++. The following were the major advances that were
incorporated into the SNARK09 package:
- capability of generating mathematically described phantoms that
- capability of applying beam hardening correction to
polychromatic X-ray projection data;
- the imagewise-region-of-interest figure of merit;
- up to 10 user implemented algorithms, at most five using blobs;
- up to five user defined figures of merit.
A variant of SNARK, which is suitable for the reconstruction of 3D images from 2D projections, is jSNARK that was written and is maintained by Stuart Rowland.
This website is being maintained by Edgar Garduño, Ze Ye, and Gabor
T. Herman. The major developments of SNARK09 and SNARK14 were done by Ran Davidi, Joanna Klukowska, Oliver Langthaler and Bernhard Prommegger.