scikit-image/scikit-image — pull request #567 by josteinbf (2013-05-26 18:22:06+00:00)
Title: Option to use a reconstruction circle in transform.radon/iradon

These changes add an argument to transform.radon and transform.iradon to limit their operations on the image to the inscribed circle of the shape of the input image array. It is motivated by my own work on reconstructing experimental tomography data and on comparing the filtered back projection to other tomography reconstruction algorithms. The major advantages of this approach are, as I see it:

* It increases the symmetry of the operations. When operations are limited to a circle, one can obtain identical results also after adding a constant to all the angles of the projections (theta argument to iradon; this will of course require the image to be rotated back after the iradon operation).
* It follows closely the conventions in the tomography field, where one usually refers to this inscribed circle as the _reconstruction circle_.
* Using a circle is the preferred way to work with experimental data (the cases where one does not work within a circle will usually require rolling one's own reconstruction code).
* Some other tomography reconstruction algortithms (for example some of the algebraic techniques) work better the smaller the number of pixel values they need to reconstruct is. Comparing skimage's implementation of the filtered back projection to such algorithms is more practical when using a circle.

An advantage of the existing approach is that it makes it easier to work with images that have data in the full square (or rectangular) array. However, I hope we can have both modes available to users!

These changes are of course supposed to be backwards compatible. All the old tests still pass without modification on my computer.

I hope you agree that this new functionality can be useful. I'm not terribly experienced with submitting code for review, so if I have missed something obvious, please let me know!