Author: Damien Farrell History: 2005/12/10: First version
2006/01/30: Added blackman filter and filter cutoff option, now accepts 8 bit color images.
2006/02/12: Added support for re-projecting stacks and storing stacks of projection data. Changed to use a Swing input dialog.
2006/02/28: Added ability to import projection data from sinogram images, converted to use jar file.
2016/04/09: Fixed bug that caused an exception to be thrown if the image width and were not equal and a bug that caused the progress bar to not be reset.
Source: Contained in jar file, can be opened as a zip archive. Installation: Download Radon_Transform.jar to the ImageJ plugins folder, or subfolder. Restart ImageJ, there will be a new RadonTransform command in the Plugins menu or submenu. Description: This plugin takes an image or image stack and performs a radon transform (by using a back projection algorithm) on it/them. The result is a set of projection data that is displayed as an 8 bit grayscale image (sometimes called a sinogram). The plugin accepts 8, 16 bit grayscale and 8 bit color images as input. (RGB color images must be converted to 8 bit grayscale before back projection).
The projection data can preferentially be re-projected using filtered back projection to produce the inverse transform. The result can be output as an 8 or 16-bit image. This may be a processor intensive and lengthy operation for large images, or large number of images in a stack. Therefore, the algorithm for calculations on stacks runs in a seperate thread and the process can be cancelled at any time.
The dialog for the plugin has the following input parameters and buttons:
- scans - number of data bins to project across image, default is image width, power of two values give best results
- angular increment (degrees) - increment angle, default is 1. Data is projected from 0-180 degrees, so a value of 2 here, gives 90 angular views
- Linear Interpolation - use linear interpolation in projection, used by default, if this is off then simple nearest neighbour interpolation is used.
- Load Data - Save projection data in a text file
- Import Data - Can import data from an 8 or 16 bit image sinogram, angular increments must be equally spaced integer values.
- Save Data - Save projection data in a text file
Options for performing the inverse transform (filtered back projection):
- Filter - smoothing filters applied before back projection of each view
- Filter Cutoff - set normalized frequency cutoff, range is 0<1<∞, default is 1
- Zoom - reconstruction field of view, can be 0<1<∞, default is 1
- Image size - output image size, any value allowed, width = height
- Bit depth - output image depth, 8 or 16 bit grayscale, default is 8
The Radon Transform is used for reconstruction of data in tomographic imaging, eg. CT or PET scanners.
Reference: Kak & Slaney (1988), Principles of Computerized Tomographic Imaging, IEEE Press, ISBN 0-87942-198-3.
Figures: Input Dialog:
Sample shows the shepp logan phantom:
Original, 256x256 8 bit image
Inverse Transform, scans=256, views=180, hann filter, zoom=1
This sample uses the same image, with fewer angular views:
Inverse, cosine filter, zoom=1, scans=256, views=45