scikit-image/scikit-image — pull request #584 by josteinbf (2013-06-09 17:55:00+00:00)
Title: SART algorithm for tomography reconstruction

This PR adds an implementation of the Simultaneous Algebraic Reconstruction Technique (see docstrings for references). The first question to be addressed is probably if this code belongs in skimage. I think so: The filtered back projection (FBP) is already included, and several options for tomography reconstruction seems reasonable. SART is nice in that it's implementation is very simple and the math required to understand it is very simple compared to FBP. This feature makes it perfect for adaption to some specific needs (examples: "my tomogram should be positive everywhere", "I know the value of this part of the tomogram, but I need to reconstruct the rest", etc).

There are some particular things I would like reviewers to look at:

* The code of `bilinear_ray_sum` and `bilinear_ray_update` feel like a lot of repetition. Ideas on how to avoid this without sacrificing performance?
* The call to `bilinear_ray_sum` should ideally be performed at the C level as it's deeply nested and called many times. I don't know cython well enough to know if that is happening now. Even better to use C-style output arguments to avoid returning a tuple, but how to do that in cython? Preferrably while still taking an ndarray as input.

I have not included an example yet. I believe the best example would be a notebook comparing SART to FBP. Is there a system for using notebooks for this kind of examples/documentation in skimage?