From e5dfcb0ab45dabdfc670b8badc7352857ffdc094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jostein=20B=C3=B8=20Fl=C3=B8ystad?= Date: Thu, 4 Jul 2013 15:23:51 +0200 Subject: [PATCH] Improve the text in and add references to the Radon example. Based on comments from Emmanuelle. --- doc/examples/plot_radon_transform.py | 75 +++++++++++++++++----------- 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/doc/examples/plot_radon_transform.py b/doc/examples/plot_radon_transform.py index fb2d9dbd..4a2c01a5 100644 --- a/doc/examples/plot_radon_transform.py +++ b/doc/examples/plot_radon_transform.py @@ -4,38 +4,36 @@ Radon transform =============== In computed tomography, the tomography reconstruction problem is to obtain -a tomographic slice image from a set of projections. A projection is formed +a tomographic slice image from a set of projections [1]_. A projection is formed by drawing a set of parallel rays through the 2D object of interest, assigning the integral of the object's contrast along each ray to a single pixel in the projection. A single projection of a 2D object is one dimensional. To enable computed tomography reconstruction of the object, several projections -must be acquired, each of them with the rays making a different angle with -the axes of the object. A collection of projections at several angles is -called a sinogram. +must be acquired, each of them corresponding to a different angle between the +rays with respect to the object. A collection of projections at several angles +is called a sinogram, which is a linear transform of the original image. The inverse Radon transform is used in computed tomography to reconstruct -a 2D image from can hence be used to reconstruct an object from the measured -projections (the sinogram). A practical, exact implementation of the inverse -Radon transform does not exist, but there are several good approximate -algorithms available. +a 2D image from the measured projections (the sinogram). A practical, exact +implementation of the inverse Radon transform does not exist, but there are +several good approximate algorithms available. As the inverse Radon transform reconstructs the object from a set of projections, the (forward) Radon transform can be used to simulate a tomography experiment. -For more information see: - - - AC Kak, M Slaney, "Principles of Computerized Tomographic Imaging", - http://www.slaney.org/pct/pct-toc.html - - http://en.wikipedia.org/wiki/Radon_transform - This script performs the Radon transform to simulate a tomography experiment and reconstructs the input image based on the resulting sinogram formed by the simulation. Two methods for performing the inverse Radon transform -and reconstructing the original image will be used: The Filtered Back +and reconstructing the original image are compared: The Filtered Back Projection (FBP) and the Simultaneous Algebraic Reconstruction Technique (SART). +.. seealso:: + + - AC Kak, M Slaney, "Principles of Computerized Tomographic Imaging", + http://www.slaney.org/pct/pct-toc.html + - http://en.wikipedia.org/wiki/Radon_transform The forward transform ===================== @@ -85,14 +83,14 @@ Reconstruction with the Filtered Back Projection (FBP) ====================================================== The mathematical foundation of the filtered back projection is the Fourier -slice theorem (http://en.wikipedia.org/wiki/Projection-slice_theorem). It -uses Fourier transform of the projection and interpolation in Fourier space -to obtain the 2D Fourier transform of the image, which is then inverted to -form the reconstructed image. The filtered back projection is among the -fastest methods of performing the inverse Radon transform. The only tunable -parameter for the FBP is the filter, which is applied to the Fourier -transformed projections. It is needed to suppress high frequency noise in the -reconstruction. ``skimage`` provides a few different options for the filter. +slice theorem [2]_. It uses Fourier transform of the projection and +interpolation in Fourier space to obtain the 2D Fourier transform of the image, +which is then inverted to form the reconstructed image. The filtered back +projection is among the fastest methods of performing the inverse Radon +transform. The only tunable parameter for the FBP is the filter, which is +applied to the Fourier transformed projections. It may be used to suppress +high frequency noise in the reconstruction. ``skimage`` provides a few +different options for the filter. """ @@ -117,15 +115,16 @@ Reconstruction with the Simultaneous Algebraic Reconstruction Technique ======================================================================= Algebraic reconstruction techniques for tomography are based on a -straightforward idea: For a pixelated image the value of a single ray in a +straightforward idea: for a pixelated image the value of a single ray in a particular projection is simply a sum of all the pixels the ray passes through on its way through the object. This is a way of expressing the forward Radon transform. The inverse Radon transform can then be formulated as a (large) set of linear equations. As each ray passes through a small fraction of the pixels in the image, this set of equations is sparse, allowing iterative solvers for sparse linear systems to tackle the system of equations. One iterative method -has been particularly popular, namely Kaczmarz' method, which has the property -that the solution will approach a least-squares solution of the equation set. +has been particularly popular, namely Kaczmarz' method [3]_, which has the +property that the solution will approach a least-squares solution of the +equation set. The combination of the formulation of the reconstruction problem as a set of linear equations and an iterative solver makes algebraic techniques @@ -134,12 +133,15 @@ with relative ease. ``skimage`` provides one of the more popular variations of the algebraic reconstruction techniques: the Simultaneous Algebraic Reconstruction Technique -(SART). It uses Kaczmarz' method as the iterative solver. A good +(SART) [1]_ [4]_. It uses Kaczmarz' method [3]_ as the iterative solver. A good reconstruction is normally obtained in a single iteration, making the method computationally effective. Running one or more extra iterations will normally -The implementation in ``skimage`` allows prior -information of the form of a lower and upper threshold on the reconstructed -values to be supplied to the reconstruction. +improve the reconstruction of sharp, high frequency features and reduce the +mean squared error at the expense of increased high frequency noise (the user +will need to decide on what number of iterations is best suited to the problem +at hand. The implementation in ``skimage`` allows prior information of the +form of a lower and upper threshold on the reconstructed values to be supplied +to the reconstruction. """ @@ -174,4 +176,17 @@ plt.show() """ .. image:: PLOT2RST.current_figure + + +.. [1] AC Kak, M Slaney, "Principles of Computerized Tomographic Imaging", + IEEE Press 1988. http://www.slaney.org/pct/pct-toc.html +.. [2] Wikipedia, Radon transform, + http://en.wikipedia.org/wiki/Radon_transform#Relationship_with_the_Fourier_transform +.. [3] S Kaczmarz, "Angenäherte auflösung von systemen linearer + gleichungen", Bulletin International de l’Academie Polonaise des + Sciences et des Lettres 35 pp 355--357 (1937) +.. [4] AH Andersen, AC Kak, "Simultaneous algebraic reconstruction technique + (SART): a superior implementation of the ART algorithm", Ultrasonic + Imaging 6 pp 81--94 (1984) + """