mirror of
https://github.com/wassname/scikit-image.git
synced 2026-07-13 17:45:20 +08:00
DOC: Move radon example to gallery.
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
"""
|
||||
===============
|
||||
Radon transform
|
||||
===============
|
||||
|
||||
The radon transform is a technique widely used in tomography to
|
||||
reconstruct an object from different projections. A projection is, for
|
||||
example, the scattering data obtained as the output of a tomographic
|
||||
scan.
|
||||
|
||||
For more information see:
|
||||
|
||||
- http://en.wikipedia.org/wiki/Radon_transform
|
||||
- http://www.clear.rice.edu/elec431/projects96/DSP/bpanalysis.html
|
||||
|
||||
This script performs the radon transform, and reconstructs the
|
||||
input image based on the resulting sinogram.
|
||||
|
||||
"""
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
from scikits.image.io import imread
|
||||
from scikits.image import data_dir
|
||||
from scikits.image.transform import radon, iradon
|
||||
from scipy.ndimage import zoom
|
||||
|
||||
image = imread(data_dir + "/phantom.png", as_grey=True)
|
||||
image = zoom(image, 0.4)
|
||||
|
||||
plt.figure(figsize=(9, 8.5), dpi=75)
|
||||
|
||||
plt.subplot(221)
|
||||
plt.title("Original");
|
||||
plt.imshow(image, cmap=plt.cm.Greys_r)
|
||||
|
||||
plt.subplot(222)
|
||||
projections = radon(image, theta=[0, 45, 90])
|
||||
plt.plot(projections);
|
||||
plt.title("Projections at\n0, 45 and 90 degrees")
|
||||
plt.xlabel("Projection axis");
|
||||
plt.ylabel("Intensity");
|
||||
|
||||
projections = radon(image)
|
||||
plt.subplot(223)
|
||||
plt.title("Radon transform\n(Sinogram)");
|
||||
plt.xlabel("Projection axis");
|
||||
plt.ylabel("Intensity");
|
||||
plt.imshow(projections)
|
||||
|
||||
reconstruction = iradon(projections)
|
||||
plt.subplot(224)
|
||||
plt.title("Reconstruction\nfrom sinogram")
|
||||
plt.imshow(reconstruction, cmap=plt.cm.Greys_r)
|
||||
|
||||
plt.subplots_adjust(hspace=0.4, wspace=0.5)
|
||||
plt.show()
|
||||
Reference in New Issue
Block a user