Image Operations in Discrete Radon Space
Image Operations in Discrete Radon Space
Image Operations in Discrete Radon Space
1. Introduction
Tomography plays an important role in fields ranging from medical and industrial imaging to aperture synthesis radioastronomy and, in the earth sciences, seismic profiling. The interplay between the process of collecting discrete signal samples, the formation of object projections in continuous (Radon) space and the creation of a digital reconstructed image has been of considerable interest for over 20 years [10]. A very general definition for a Discrete Radon Transform (DRT) was developed by Beylkin [1] for discrete arrays of arbitrary integer size. Beylkin presented
developed recently [10], to allow exact mapping between digital lines and their Radon transform on arbitrary discrete arrays. This mapping has the representational advantage that individual lines do not wrap around the digital array, as occurs in the DRT. The inverse mapping, although iterative, converges rapidly and accurately to the digital lines as input. Here we present algorithms to compute the forward and inverse DRT. We also examine methods to perform elementary image operations such as image rotation and translation in the digital projection space. The object of these operations is to perform image comparisons and filtering directly on the projection data without requiring reconstruction of the image. For iterative algorithms, this may result in substantial computational savings, as well as providing alternative methods for image processing operations that are usually performed in the spatial domain. The DRT R(t, m) of image I(x, y), is defined [2, 4] by the parameters p, t and m, where p is the prime array size of the (square) 2D image data. The integer index m, with 0 m p, fixes (uniquely) the relative offsets, xm:ym, between nearest neighbour pixels of the digital ray for that m value. The ray angle, m = atan(ym/xm), corresponds to the orientation of the line joining pixel positions selected by (t, m) to their nearest neighbours. The minimum distance between neighbouring pixels is dm, where dm2 = xm2 + ym2. The value of xm is allowed to take negative values, to enable the digital projections to span angles from 0 to 180. This leads to fourfold and sixfold symmetry in the angle and gap distributions, for the square and hexagonal lattices respectively. For the hexagonal array, xm and ym are both odd or even. The integer index, t, 0 t < p, measures the translation of a digital ray in horizontal increments from t = 0 at the top left corner of the image (where x = y = 0). An image point (x, y) maps [6] to translate t for a given m on a regular square lattice according to t = (x - my) mod(p) m = (p + xm)/ym , and t = (x - (m + )y) mod(p) m = [(p + (xm- ym)/2]/ym (2) (1)
for regular hexagonal lattices. Modulus p arithmetic applies in (1) and (2); is the smallest positive integer for m to be an integer.
than the write time per pixel for a given computing system. Parallel computers can more easily read multiple data items than write them, as this causes fewer memory contention problems. Reconstructing the image using the forward transform reads the data p times from R for each (t, m), with the summed result being written once into the final image I(x, y). The conventional inversion algorithm reads once from R and writes this result p times into I for each element (t, m). For the block copy and add approach, the relative gains in processing speed are smaller, as adjacent translates are still read and added (hence written) to the output in sequential translate order (processing all t for each m, rather than all m for each t). The typical computation time to reconstruct a 761 x 761 image from 761 x 762 floating point R data was 43.30 seconds using the inverse transform and 40.82 seconds for the forward transform inversion method, on a single CPU serial computer. Both approaches used the more efficient block copy and add approach. For each row increment, t must be incremented by m, then t is checked for t p (with p subtracted if required). This operation is done p + 1 times for each DRT projection. Pre-computing a list of the wrap offsets and then indexing into this array for each row might be thought to give some marginal gain, but generated at best equal or larger computational overheads (taking 41.35 seconds for image reconstruction from 761 x 762 data). The approaches considered here are all variants of the standard back projection algorithm (and scale as order n3; n backprojections are performed, each over an n x n image). Faster projection and inversion algorithms may be achieved using Fourier or the related linogram (order n2logn) approaches. The latter methods both require resampling of the I(x, y) or R(t, m) values. Here we have concentrated on exact inversion methods using only addition of the original sample values, so that the errors in I(x, y) I(x, y) are limited only by the finite precision with which the (floating-point) data values are represented, and to avoid the iteration required for inversion methods such as [10].
For the square lattice, the required offset of the translate origin, dt, depends linearly on the row index m and is given, from equation (1), by dt = dx + mdy. The location of t = 0 is moved by an integer offset, dt mod (p), with the shifted data from row m of R being copied to form the translated projections for row m of R. This block copy is easily done in two parts, t = dt to t = p 1 and then t = 0 to t = dt 1, as used in the forward and inversion projection algorithms, for each m. For m = 0, dt = p dx and for m = p, dt = p dy. For hexagonal offsets, equation (2) gives the translate mapping, T, as dt = -dx - m(p dy) + (dy + 1)/2, with dt = -dy for m = 0 and dt = -dx + p + dy/2 for m = p. If R(t, m) is the DRT of the original image, then the DRT of the translated image is given by R(t, m) = TR(t, m).
Figure 1. Reconstructed image after translation by offsets dx = 100 and dy = 200 in R(t, m) space (479 x 479 image). Translates wrap in unit increments around hexagonal arrays in the x direction, but in the y direction the distance between vertically adjacent pixels is 2 units (of size 3/2 as adjacent rows have pixels offset by a translate unit). The above mapping preserves exactly the spatial relationships of all pixels from p dy to dy. Those pixels wrapped by the translation process vertically around the array have an alternating unit horizontal offset with opposite phase to that of the p x p lattice. To undo the translation, operator T may be applied with offsets dx and dy so that dx + dx = 0 and dy + dy = 0. To correctly
account for the effects of the vertical wrapping, the negative offsets are dx = (p + 1)/2 - dx and dy = p dy. Then applying T-1TR = R exactly. Figure 1 shows an example image reconstructed after a translation by dx = 100 and dy = 200 in the R(t, m) space. The original image was a 479 x 479 image (Lena) mapped to a hexagonal lattice.
The mapping of translates from R(t, m) into R(t, m) is also cyclic in m. Figure 3 shows that the location of samples in I(x, y) that are spaced a horizontal distance of m units apart in R space (ie at translations t mod(m)) will always correspond to vertically adjacent elements in I(x, y). For the example shown in Figure 2, at m = 2, the translates from m = seq[2] = 3 are mapped linearly across the row at every second translate as [ 0 1 2 3 4 5 6], which becomes, for mod(7) lengths and starting at t = 2, the seven translates [6 3 0 4 1 5 2] (as observed on the third row of Fig. 2b, where m = 2). o a o o o o b o o o o c o o o o d o o o o e o o o .. o a o o o o b o o o o c o o o o d o o o .. o a o o o o b o o o o c o o o .. o a o o o o b o o o .. o a o o o .. Figure 3. The top left corner of an arbitrary image, I(x, y). Image samples separated by a horizontal distance of m in I(x, y), marked by the values a, b, c, d, and e, represent vertically adjacent elements in the DRT space R(t, m). Here t = 1 and m = 5, o marks the location of other image pixels. As successive applications of S form cumulative rotations, SSSSR = S4R = R. Permutation of the steps outlined above produces a single pass algorithm equivalent to 180 degree rotation, S2, and yields another for 270 degree rotation, S3 = S-1, so that S-1SR = R. The mapping seq[m] is related to the generalised Legendre sequences generated by the powers of prime residues used in active beam steering [8].
Figure 2. a) (t, m) coordinates for a 7x7 image, b) the DRT coordinates (t, m) for the image rotated 90 anticlockwise by SR, c) the DRT coordinates (t, m) for the 90 clockwise image rotation, by S-1R
seconds, in R space, the same operation took 0.15 seconds. Figure 4 shows the reconstructed image resulting from R-1HR where R is the DRT of the original version of the image shown in Figure 1.
Figure 5. Reconstructed image after the hexagonal lattice rotation operation H was applied to the square lattice DRT of the original image of Figure 1. Figure 4. Reconstructed image after the 60 rotation operator, H, was applied to the DRT of the original of the image shown in Figure 1 (479 x 479 image).
Figure 7. 173x173 image. Point spread function for an impulse at (86, 86) reconstructed after cumulative 1D convolution with a pixel length of 45, performed in R space at rotations 0, 60 and 120 degrees.
7. References
Figure 6. Dots are the pixel locations sampled by the DRT for p = 409, m = 97 and t = 35. The four squares drawn in the array are of size 97 x 97. Such squares enclose 23 pixels at almost all locations in the p x p array.
[1] G. Beylkin, Discrete Radon Transform, IEEE Trans. on Acoustics, Speech and Signal Processing, vol. ASSP-35, no. 2, pp. 162-172, February 1987. [2] F. Matus and J. Flusser, Image Representation via a Finite Radon Transform, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 15, no. 10, 1993, pp. 996-1106. [3] P. M. Salzberg and R. Figueroa, Chapter 19, Tomography on the 3D-Torus and Crystals, in Discrete Tomography: Foundations, Algorithms and Applications, Eds. G. T. Herman and A. Kuba, Birkhauser, Boston, 1999. [4] I. Svalbe and D. van der Spek, Reconstruction of Tomographic Images Using Analog Projections and the Digital Radon Transform, presented at the Workshop on Discrete Tomography, Sienna, Italy, October, 2000 (in press, Linear Algebra and its Applications, 2001). [5] I. Svalbe, A Method to Embed Messages in Images Using the Digital Radon Transform, accepted for presentation at ICIP, Thessalonika, Greece, October, 2001. [6] I. Svalbe, Digital Projections in Prime and Composite Arrays, IWCIA, Philadelphia, August, 2001, also see Electronic Notes in Theoretical Computer Science, www.elsevier/.nl/locate/entcs. [7] J. Foley et al, Computer Graphics, Principles and Practice, 2nd Edition, Addisson-Wesley, 1996. [8] M. Schroeder, Number Theory in Science and Communications, Springer-Verlag, 3rd Edition, 1997. [9] R. Jones and P. Soille, Periodic Lines and Their Application to Granulometries, Mathematical Morphology and its Applications to Image and Signal Processing, Eds P. Maragos, R. Schafer and M. Butt, Kluwer Academic Press, 1996, p. 263- 272. [10] A. Averbuch, R. R. Coifman, D. L. Donoho, M. Israeli and J. Walden, Fast Slant Stack: A Notion of Radon Transform for Data in a Cartesian Grid which is Rapidly Computable, Algebraically Exact, Geometrically Faithful and Invertible, May 2001, TR #2001-11, www-stat.stanford.edu/research.
6. Conclusions
Algorithms that operate on, or permute the contents of discrete DRT projections have been presented. The resulting operations are efficient means of forward and inverse DRT mapping and to perform elementary translations (T) and rotations (S and H) from within the digital projection space. We are continuing to examine more general rotation operators, convolution and morphologic operations taken along periodic or connected lines [9] in the R arrays. Figure 7 shows the point spread function resulting from convolution in R space along hexagonal axes. The operation was performed by uniformly weighted averaging using a length of 45 pixels) of the translates in the R space at three 60 degrees rotations. Wrapping across the t = 0 and t = p 1 boundaries is accommodated by using circular convolution. If G is a general linear convolution operator, then GI(x, y) = R-1GRI(x, y). The convolution G may be implemented in R space as the sum of translated DRTs over the kernel of the operator, as sums of y-translated 1D row convolutions or, for separable kernels, as the cumulative product of 1D convolutions over appropriate rotations of the image.