You are on page 1of 27

Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You

1 of 27



Image Reconstruction from
Projections in Tomography



- Mathematics and Realization by C++






Jiangsheng (Jason) You



jyou@cubic-imaging.com




Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
2 of 27
Chapter I Introduction
Section 1.01 Mathematical notation
Some frequently used mathematical notation is defined for use in the subsequent chapters. Most
of definitions can be found in the standard references such as [HG81, NF86, KS87].
n
R denotes
the n-dimensional Euclidean space,
1 n
S denotes the unit sphere of
n
R and
1
=
n n
S R T
denotes the unit cylinder of
n
R . The bold letter represents a functional operator or a matrix,
depending on the context. Especially, H and T represent the Hilbert transform and its
derivative, respectively. ) (

H and ) (
0

H stand for the Sobolev spaces. ) (


1
L and ) (
2
L stand
for the integrable and square-integrable function spaces, respectively. The symbol ) (
~
f stands
for the Fourier transform of a function ) ( f . The Fourier transform (FT) of a function ) (x f of
n
R and the inverse are defined as follows
dx e x f f
x i

2
) ( ) (
~
, (1.1)


d e f x f
x i

=
2
) (
~
) ( . (1.2)
Some special functions are used extensively in image reconstruction. Some of them are listed
below. For, 1 | | x , the Chebyshev polynomial of the first kind is defined as
) acrcos cos( ) ( x n x T
n
= , (1.3)
and the Chebyshev polynomial of the second kind is defined as
) sin(arccos
) acrcos ) 1 sin((
) (
x
x n
x U
n
+
= . (1.4)
The Bessel function of the first kind is defined as

2
0
sin
2
1
) ( d e x J
in ix
n
. (1.5)
The Hankel transform of order n is defined as

=
0
) ( ) ( ) ]( [ dr r J r rf f
n n
H . (1.6)
The sinc function is defined as

=
=
otherwise x x
x
x
/ sin
0 . 0 0 . 1
) sinc( . (1.7)
A linear equation is expressed as follows
y x = A . (1.8)
Section 1.02 Discretization of continuous functions
In the numerical world, a function is always expressed as a sequence of numbers. In this section,
we give some review on the sampling issue regarding the relation between the discrete function
and its continuous counterpart. Two kinds of functions are of specific interests. One is the
support-limited function and the other is the band-limited function. To void any technical
difficulties, we only consider smooth functions. A function ) (x f is called support-limited if it
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
3 of 27
has compact support, and a function is called band-limited if its FT has compact support. The
support-limited functions can be extended as periodic functions, thus the Fourier series
expansion is used frequently in the spectrum analysis.
Without loss of generality, assume the one-dimensional support-limited function ) (x f is
defined in ] 2 , 0 [ , then we have the following Fourier series expansion


=
inx
n
e f x f ) ( . (1.9)
Furthermore, assume ) (x f is sampled on the grid points } { k x
k
= , here K / = and K is an
integer number, if ) (x f only has 2K terms in its Fourier series, then we have

=
1
) (
K
K
ikx
k
e g x f . (1.10)
Here } {
k
g is the inverse discrete FT (DFT) of )} ( {
k
x f . That means that the DFT could be
accurate when the number of terms in Fourier series is finite. We call the equation of (1.9) as the
Fourier interpolation of )} ( {
k
x f . Certainly, there are a lot of other different interpolation
methods.
If ) (x f is a band-limited function, we may assume its Fourier transform ) (
~
f is defined
in ] / , / [ , here is the sampling interval of x, by the Shannon sampling theorem, we
have the following expression




= ) sinc( ) ( ) (
n x
n f x f . (1.11)

Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
4 of 27
Chapter II Radon-Type Transform and its Inversion
In the early 1960s, Cormacks work [CORMACK63] initiated the investigation of image
reconstruction using the inversion of the Radon transform in radiological imaging, especially for
CT. Later on, the attenuated Radon transform was suggested to reflect the linear attenuation in
SPECT in order to more accurately model the data acquisition procedure. Therefore, the
inversion of the (attenuated) Radon transform plays the key role in image reconstruction.
Historically, the inversion of the exponential Radon transform had been obtained [TM80], more
or less, from the theoretical interest since the explicit inversion of the attenuated Radon
transform turned out to be clueless at the very beginning.
Even the inversion of the exponential Radon transform had been very difficult. The
explicit inversion of the attenuated Radon transform might not be possible at all after a lot of
efforts in 1970s. Paved on decades efforts [ABK98], Novikov eventually derived an FBP-type
explicit inversion of the attenuated Radon transform in 2000, by using a transport equation
theory [NOVIKOV02]. This marks the most beautiful achievement of using the inversion of the
attenuated Radon transform in image reconstruction. In this chapter, we will give the detailed
mathematical definitions of the Radon-like transforms and the expressions of various inversions.
Section 2.01 Radon-type transforms
Let
2
R denote the two-dimensional Euclidean space with point representation ) , ( y x for
Cartesian coordinates and ) , ( r for polar coordinates. Define

) , ( t s as the Cartesian coordinate


through rotating ) , ( y x by an angle along the counterclockwise direction, see Figure 2.1. The
transformation between those two coordinates can be described by the following relations.

|
|
.
|

\
|
|
|
.
|

\
|

=
|
|
.
|

\
|
|
|
.
|

\
|
|
|
.
|

\
|

=
|
|
.
|

\
|
t
s
y
x
y
x
t
s




cos sin
sin cos
and
cos sin
sin cos
. (2.1)















For any function ) , ( y x f in
2
R , ) cos sin , sin cos ( ) , (

t s t s f t s f + = denotes
the same function in the coordinate

) , ( t s . The Radon transform of ) , ( y x f is defined as


f

(s,t)=f(x,y)
s
t
x
y
Figure 2.1

Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
5 of 27


= dt t s f s p ) , ( ) , (

, (2.2)
and is denoted by f R . The Radon transform maps a function of
2
R to a function of
1
S R ,
where
1
S represents the unit circle with parameter ] 2 , 0 [ . In the tomographic imaging such
as CT, PET and SPECT, the object function ) , ( y x f represents certain physiologic parameters to
be estimated and ) , ( s p represents the data acquitted or calculated from imaging devices. So,
the coordinate ) , ( y x is usually associated with the human body and the coordinate

) , ( t s
corresponds to the rotating detectors.
The goal of image reconstruction is to estimate the object function ) , ( y x f using its
projection data ) , ( s p , i.e., inverting (2.2). The inversion formula for (2.2) was first derived by
Radon from pure mathematical interest, and then rediscovered by Cormack for radiological
applications. Cormack was honored the Nobel Prize due to the medical significance of his work.
The original mathematical derivation for the inversion of (2.2) seemed to be quite complicated,
but becomes very elementary with the Fourier slice theorem. The author first saw the description
of the Fourier slice theorem for CT from [SL74]. Let ) , (
~
p be the 1D Fourier transform of
) , ( s p with respect to the first variable, and ) , (
~
t s
f

be the 2D Fourier transform of ) , ( t s f

,
then we have
) , (
~
) 0 , (
~

p f
s
= . (2.3)
Eqn (2.3) is the so-called Fourier slice theorem. Obviously, ) , ( s p within ] , 0 [ would be
enough for an exact reconstruction since we have the following symmetric relation
) , ( ) , ( s p s p = + . (2.4)
In some applications such as SPECT, a weighted line integral should be considered to
accurately model the acquired data, i.e., (2.2) has a more general form like

= , ) , ( ) , (
) , (
dt e t s f s p
t s a

(2.5)
where

=
t
d s t s a

) , ( ) , ( , and ) , ( y x is the linear attenuation map. Eqn (2.5) is the so-
called attenuated Radon transform and is denoted by f

R . Obviously, when 0 ) , ( y x , (2.5)


reduces to (2.2). The inversion of (2.5) turned out to be so complicated that people took the
different way of discretizing (2.5) as a linear system for pursuing the inversion by using an
optimization theory. On the analytical method, historically, people first obtained the inversion of
the following exponential Radon transform

= , ) , ( ) , ( dt e t s f s p
t

(2.6)
where is a positive constant. The exponential Radon transform is denoted by f

R .
We call the standard, exponential and attenuated Radon transforms as Radon-type
transforms for simplicity. Notice that the Radon-type transform maps a function of
2
R to a
function of
1
S R .
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
6 of 27
Section 2.02 Inversion of Radon-type transforms
The mathematical derivation for the inversion of (2.6) had been difficult already. Eventually, an
FBP-type inversion formula of (2.5) was derived in 2000 after three decades of many
researchers efforts. To honor Novikov for his contribution, Novikovs inversion formula is
usually used in the literature. In this section, we only present the explicit inversion formulae of
Radon-type transforms. The detailed derivation is left for user to read the original papers. For
implementation purpose, one may accept the inversion formulae without knowing the
mathematical details.
First, we introduce two operators that are frequently used and play the important roles in
both theory and numerical simulations. Let H and T denote the Hilbert transform and its
differential, respectively. Their corresponding kernel functions are denoted by ) (l H and ) (l T .
With the generalized Fourier transform, ) (l H and ) (l T can be expressed as

d e i l H
il


= ) sign(
2
1
) ( (2.7)
and

d e l T
il


= | |
2
1
) ( . (2.8)
For any weighting function ) (l w with
2 1
) ( c l w c , where
1
c and
2
c are positive constants,
we have the following scaling properties:
) ( / ) ( ) ) ( ( l w l H l l w H = , (2.9)
) ( / ) ( ) ) ( (
2
l w l T l l w T = . (2.10)
Eqns (2.9-2.10) are quite useful to the reconstruction with non-uniform sampling such as fan-
beam projections. By the principal value integral, the Hilbert transform and its derivative can be
expressed as follows
dl
l s
l g
pv s g


) ( 1
) ]( [

H (2.11)
and
dl
l s
l g
pv s g


) ( 1
) ]( [

T , (2.12)
where ) (l g is the derivative of ) (l g .
Without specifically stating, ) , ( s p always stands for the projection in Radon-type
transform. For the sake of consistence, we use p
1
R , p
1

R and p
1

R to denote the inverse


transforms of f R , f

R and f

R , respectively. Notice that p


1
R , p
1

R and p
1

R all map a
function of
1
S R to a function of
2
R . Now, we introduce the explicit inversion formulae of
Radon-type transforms in the fashion of FBP procedure as follows:
dl l p l r T d r p ) , ( ) ) cos( (
2
1
) , ]( [
0
1

R , (2.13)
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
7 of 27
dl l p l r T e d r p ) , ( ) ) cos( (
4
1
) , ]( [
0
2
0
) sin( 1

=




R (2.14)
and
)
`

=
=



+ +

=

) sin(
) cos(
) , ( ) , (
2
0
1
) ) , )( )( ( ( Re
4
1
) , ]( [


r t
r s
h s h t s a
dl l p e l s H e
s
d r p R , (2.15)
where
) | | | | (
2
1
) (
0
0
0


d e d e l T
l i l i


= , (2.16)
) , ]( ) [(
2
1
) , ( l i l h R H I + =
+
. (2.17)
Hereafter, ) 2 /(
0
= . Notice that the projection ) , ( s p has to be understood in the right
context regarding the attenuation. The appearance of (2.13-2.15) looks quite simple, but its been
a long journey for them to be here. The most original work of obtaining those inversion formulae
came from [SL74], [TM80] and [NOVIKOV02]. Among other different flavors of the inversion
formulae in the literature, we think, the FBP type is the most elegant one. From the mathematical
interest, the inversion of the exponential Radon transform is nice, but seems to have little help
for dealing with practical problem since almost no real application could have projections being
modeled as the exponential Radon transform. With the advent of Novikovs inversion formula,
the inversion of the exponential Radon transform may not be useful as used to be from both
theoretical and practical points of view.
Eqn (2.13) is very easy to obtain with the Fourier slice theorem, thus we like to give its
full derivation below in just a few lines. Let ) , (
~
y x
f be the 2D Fourier transform of ) , ( y x f ,
then we have
y x
y x i
y x
d d e f y x f
y x

) ( 2
) , (
~
) , (
+

= . (2.18)
Let ) , ( be the polar coordinate expression of ) , (
y x
, then we have
dl l p l r T d
d d e p
d d e f r f
r i
r i
) , ( ) ) cos( (
2
1
) , (
~
) , (
~
) , (
0
) cos( 2
0
) cos( 2
2
0 0

=
=
=


. (2.19)
Now, one may see the beauty of Fourier slice theorem. However, the derivation of (2.14-2.15)
needs a bit amount of work. In the literature, there had been a lot of other equivalent inversions
by using different mathematical methods. Especially, (2.13) and (2.14) can be expressed in the
frequency domain so that one may first reconstruct the Fourier transform of ) , ( y x f or the
circular harmonic transform of ) , ( r f .
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
8 of 27
Section 2.03 FBP reconstruction for fan-beam projections
So far all the projections we discussed are parallel at each scanning angle. For acquisition
efficiency and speed consideration in tomographic imaging, the fan-beam projections are the
most popular data acquisition format used in CT, PET and SPECT. In this section we will derive
the corresponding FBP algorithm for fan-beam projections. Since the FBP algorithm in [YZL05]
degenerates to the standard FBP algorithms in [HN77, HORN79], so we only present the
derivation of FBP algorithms for attenuated fan-beam projections.
Assume that the source positions are located on a circle with its center at the origin. One
view of the fan-beam data acquisition geometry is described in the following Figure 2.2.










Figure 2.2. Each projection ray is uniquely determined by ) , ( . Points O and F
are the origin and the fan focal point, respectively. Here denotes the angle
between OF and the projection ray, expresses the angle between OF and the y-
axis, and D is the distance between the source and origin. Point P is any location at
which the value needs to be reconstructed, and denotes the angle between OF
and PF.

The relation between the parallel-beam projection coordinate ) , ( l and the fan-beam projection
coordinate ) , ( can be expressed as
+ = = , sin D l . (2.20)
The Jacobian of the transformation from ) , ( to ) , ( l is cos D , which is always positive
for 2 / 2 / < < . If the support of ) , ( y x f and ) , ( y x is in the disk with radius less than
D, the mapping between ) , ( to ) , ( l is one-to-one inside that disk. And we have the
following geometric relation
) sin( ) cos( = K l r , (2.21)
where
) sin( 2
2 2
+ + = rD D r K (2.22)
and
) cos( sin = r K . (2.23)
The eqns (2.21) and (2.22) can be derived by considering a simple triangular geometry. Define
the weighted fan-beam projection ) , ( g as
) , sin )( ( ) , ( + =
+
D p e g
h
(2.24)
in the fan-beam coordinates and assume that ) , ( y x f and ) , ( y x are smooth, then we have
} , sin {
| ) , )( ( ) , ( cos

+ = =
+

D l
h
l p e
l
g D . (2.25)
Origin
P
Detector
Focal point
D
F
O

Ray
l
r

Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
9 of 27
Equation (2.25) turns out to be the key relation to facilitate the existence of an FBP algorithm for
fan-beam data. Using the fan-beam coordinate ) , ( , we define
)} sin( ), cos( , {
) , ( ) , (
) , , (



= = + =

+
=
r t r s
s h t s a
e r W (2.26)
and
)} sin( ), cos( , {
) , ( ) , (
1
) , , (


= = + =

=
+
r t r s
s h t s a
s
e
r W . (2.27)
Because ) , ( y x f and ) , ( y x are smooth, (2.15) becomes



=

+

2
0
2
2
1
2
0
2
2
2 2
2
0
2
2
1
2
0
2
2
2

) sin(
cos ) , (
) , , (
Re
4
1

) , (
) sin(
cos
) , , (
Re
4
1

) sin(
cos ) , (
) , , ( Re
4
1

) , (
) sin(
) cos ( ) , , (
Re
4
1
) , (
d
D g
d
K
r W
d
g D
d
K
r W
d d
K
D g
r W
d d
g
K
D r W
r f
, (2.28)
where
)
) cos(
arcsin(
K
r


= . (2.29)
Apparently, eqn (2.28) follows the procedure of filtered backprojection for the weighted fan-
beam projections ) , ( g , and the second term of the eqn (2.28) vanishes if the attenuation
reduces to zero so that (2.28) becomes the standard FBP algorithm in [HN77, HORN79]. The
calculations are based on the angular expression ) , ( of projection ray, and can be extended
to any other coordinate expression ) ), ( ( if ) ( is a one-to-one mapping, e.g., equally
spaced sampling along the detector.
Notice that ) , ( g in (2.24) is the weighted fan-beam projection, instead of the
attenuated Radon transform, i.e., the attenuated projection has to be weighted by a complex
function
) , ( s h
e
+
. Actually, it has been known that in [YZL05], for the following angular Hilbert
transform

=
2 /
2 /
) sin(
) (
pv
1
) ]( [

d
g
g , (2.31)
) , ]( [ l HR can be evaluated by the following formula
) , sin ]( [ ) , ]( [ + = D k HR , (2.32)
where ) , sin ]( [ ) , ( + = D k R and is performed on the first variable of ) , ( k .
Therefore the weighted fan-beam projection ) , ( g can be calculated using ) , ( k if we
project the attenuation map using the fan-beam coordinate, i.e., we evaluate ) , ( g by the
following formula
) , sin ( ) , (
) , ]( ) [(
2
1


+ =
+
D p e g
k i I
. (2.33)
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
10 of 27
As a result, with the fan-beam coordinate, the filtering step would become a standard angular
Hilbert transform of the weighted projections.
Section 2.04 Circular harmonic decomposition technique
First, we would like to give a brief review of Cormacks inversion formula. Using the harmonic
analysis, the object function ) , ( r f can be expressed as

in
n
e r f r f ) ( ) , ( . (2.34)
Similarly, the projection ) , ( s p is 2-periodic so that it can be expressed as

in
n
e s p s p ) ( ) , ( . (2.35)
Cormacks contribution is to find the relation between ) (s p
n
and ) (r f
n
as follows,
dr
s r
r r f
r
s
T
s p
n n
s
n
2 2
| |
) ( ) (
2 ) (

, (2.36)
ds
r s
s p
r
s
T
r f
n n
r
n
2 2
| |
) ( ) (
1
) (

. (2.37)
Here ) (
| |

n
T is the n-th order Chebyshev polynomial of the first kind and ) (s p
n
is the derivative
of ) (s p
n
. The beauty of (2.36-2.37) is that the relation between ) (s p
n
and ) (r f
n
is
characterized as an exterior problem although the numerical implementation turned out to be
unstable. With the advent of FBP algorithms, equations (2.36-2.37) have no long been that
important as used to be from the numerical point of view. Actually, we have the following
numerically stable circular harmonic formula using eqn (2.13),


=
0
2 2 /
) 2 ( | | ) ( ) (

d e r J ds s p e r f
s i
n n
in
n
. (2.38)
Considering the sampling bandwidth, one may use the following approximation




d e r J d e r J
s i
n
s i
n
2 2
) 2 ( | | ) 2 ( | | . (2.39)
Hereafter, ) 2 /( 1 = denotes the sampling band of the projection ) , ( s p . The extension of
(2.38) to the inverse exponential Radon transform is as follows,

+
+ +
=
0
2 0
2
0
2
2
0
2
) )( 2 ( | | ) ( ) (




d e r J ds s p r f
s i n
n n n
. (2.40)
It has been found that (2.38) and (2.40) are quite useful to handle some complicated data
acquisition geometry [YLB98, YLZ99], in which the standard fan-beam is as a special case. The
extension of Cormacks inversion formula to the exponential Radon transform was derived in
[PURO01]. The nature of exterior problem in Cormacks inversion formula is useful to handle
some difficult issues such as exterior tomography [QUINTO98].
Similarly, one may establish the circular harmonic relation between the 2D Fourier
transform ) , (
~
f of ) , ( r f and the 1D Fourier transform ) , (
~
p of ) , ( s p with the first
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
11 of 27
variable for both the Radon and the exponential Radon transforms. It was said that this kind of
decomposition in frequency domain could help suppress noise. However, the author has not seen
any benefit in doing so except that the extra discrete Fourier transform does make the
reconstructed image look more blurring. Also, the numerical implementation of the inverse
Fourier transform in polar coordinate could generate serious artifacts and has not been
recommended in practical use, see [NW01]. Therefore, the circular harmonic inversion in the
frequency domain is of less importance.
Section 2.05 Sobolev space properties and noise propagation
Due to the nature of imaging physics, the projection ) , ( s p is usually contaminated by noise. It
is practically important to investigate the functional relationship between the object function and
its projection. First, we introduce two Hilbert spaces as
} ) ) , (
~
) 1 ( ( | ) ( { C ) ( H
2 / 1
2
2 2
2
< + + =

y x y x y x
R
d d f C f

, (2.41)
} ) ) 1 ( ) , (
~
( | ) S ( { C ) S ( H
2 / 1 2
2
2
0
1
0
1
0
< + =


d g d C g . (2.42)
Here ) 1 , 1 ( = , is the unit disk of
2
R , ) , (
~
y x
f is the 2D Fourier transform of ) , ( y x f
and ) , (
~
g is the 1D Fourier transform of ) , ( l g with respect to the first variable, and C
represents the closure of smooth functions under the defined norms. In a similar way, one can
define ) ( H

, ) ( H
0

, ) ( H R

, ) ( H
0
R

, ) ( H
2
R

and ) ( H
2
0
R

, also, we use ) ( H to represent


both ) ( H
0
and ) ( H
0
0
, depending on the context. And

denotes the Sobolev norm under the


appropriate context. Let

X be the characteristic function of . We summarize the Sobolev


space estimate in [RULLGARD04] as the following theorem.
Theorem. The operator T is bounded from ) ( H
1/2
0

+
to ) ( H R

, and H is bounded
from ) ( H
0

to ) ( H R

. Assume that the attenuation map ) , ( y x is smooth with


support in , then the operator

R is bounded and injective from ) ( H to


) S ( H
1 1/2
0
and the operator
1

R X is bounded and surjective from ) S ( H
1 1/2
0
to
) ( H .
However, keep in mind that

R is not surjective and


1

R X is not injective. Let ) (

R R be the
range space of

R , and ) (
1

R X N be the null space of
1

R X when the reconstruction is
restricted in . For each ) S ( H ) , (
1 1/2
0
s g , it can be decomposed into
) , ]( [ ) , ( ) , ]( [ ) , (
1 1


s g s g s g s g

+ = R R R R X X , (2.43)
here ) ( ) , ]( [
1

R R R R s g

X and ) ( ) , ]( [ ) , (
1 1



R R R X X N s g s g , thus we have the
following direct sum decomposition
) ( ) ( ) S ( H
1 1 1/2
0

=

R R X N R . (2.44)
The range space ) (

R R can be characterized by the following consistency condition
0 ) , ]( ) [( Im
) , (
2
0
= +
+

d s p e i e
h t s a h
H I . (2.45)
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
12 of 27
Here ) , ]( ) [(
2
1
s i h R H I =

.
For SPECT imaging, the acquired projection is expressed as ) , ( ) , ( ) , ( s n s p s p + = ,
here ) , ( s p is the mean projection and ) , ( s n is the projection noise. Using (2.44), ) , ( s n can
be decomposed into
) , ( ) , ( ) , ( s n s n s n
N R
+ = . (2.46)
Here ) ( ) , (

R R s n
R
and ) ( ) , (
1


R X N s n
N
. We call ) , ( s n
R
the range space noise and
) , ( s n
N
the null space noise. Even ) , ( s n
N
does not have any contribution to reconstruction,
we can estimate it by the following formula
) , ]( [ ) , ( ) , (
1


s p s p s n
N

= R R X . (2.47)
In general, the statistics of the range space noise ) , ( s n
R
is unclear. For ) , ( s n
R
, the Sobolev
space estimate of [RULLGARD04] read as
) (
1
2
) (
) (
1
1
1 2 / 1
0 B H
R
S H
R
B H
R
n C n n C



R R X X . (2.48)
Here constants
1
C and
2
C only depend on the attenuation map. Numerical simulations in
[YOU05] indicate that the high-frequency components of ) , ( s n
R
and ) , ( s p have the same
magnitude. Therefore, ) , ( s n
R
seems to be hardly filterable. Some specific filters have been
suggested in [YOU05] to smooth the projections.
Remark 1. The variance analysis based on the
1
L and
2
L norms of the projection ) , ( s p
seems to have little help to filter ) , ( s n
R
.
Remark 2. The injectivity of

R indicates that the discretized version of

R , as a linear
system, is generally injective as well, but could be very singular. Thus, iterative methods by
using that linear system would be very sensitive to noise since the eigen values of that linear
system might be very small. This would give an explanation on why the EM algorithm diverges
after certain iterations.

Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
13 of 27
Chapter III Numeric Realization
Within the analytical framework, the object function can be uniquely reconstructed using the
projections defined by the Radon-type transforms. On the other hand, the object function
) , ( y x f is defined in
2
R and the projection ) , ( s p is defined in S R , the discretization of
those two kinds of functions must follow certain consistency condition during the sampling in
order to avoid any extra numerical error due to the non-uniform relationship between those two
coordinates. During the reconstruction, the object function ) , ( y x f does not need to be
discretized since the FBP-type inversion formula allows one to reconstruct ) , ( y x f at any point.
However, the simulation of projection needs the discretized version of the object function, and
all iterative methods need that to construct the projection model. In this book, the object function
is dynamically sampled in the detector coordinate since the coordinate transformation approach
has the high accuracy and efficiency. The coordinate transformation is implemented using the
interpolation method, which can be carried out using hardware [LKA04].
Section 3.01 Sampling the object function and its projection
In the continuous scenario, the object function ) , ( y x f and its rotation ) , ( t s f

should not be
any different. However, when one samples ) , ( y x f and its rotation counterpart ) , ( t s f

on a
discrete grid in their corresponding coordinates, the continuous functions ) , ( y x f and ) , ( t s f


become to ) , (
j i
y x f and ) , (
n m
t s f
k

, respectively. Hereafter, the italicized letters, e.g., i, j, k, m


and n, represent integer numbers. Without loss of generality, we assume that all distance-related
variables are evenly sampled with the interval step of in consideration. When considering the
attenuation, the map ) , ( y x and its rotation counterpart ) , ( t s

can be treated numerically in


the similar way. The Figure 3 gives a more illustrative view on what ) , (
j i
y x f and ) , (
n m
t s f
k


look like in the coordinates ) , ( y x and

) , ( t s , respectively.








Now, in the coordinate system
k
n m
t s

) , ( , the discrete version of eqn (2.2) would become
) , ( ) , (
n m
n
k m
t s f s p
k


= . (3.1)
Similarly, eqn (2.5) becomes
) , (
) , ( ) , (
n m
k
k
t s a
n m
n
k m
e t s f s p

= , (3.2)
where ) , ( ) , (
i m
n i
n m
s t s a
k k

= , and eqn (2.6) becomes


n
k
t
n m
n
k m
e t s f s p

= ) , ( ) , ( . (3.3)
Figure 3
) , (
j i
y x f
) , (
n m
t s f
k

Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
14 of 27
Notice that, in the numeric implementation, the object function ) , ( y x f is only known on one
single angle, say in the coordinate ) , ( y x , i.e., only the discrete values of ) , (
j i
y x f are given. As
a result, their rotated counterparts ) , (
n m
t s f
k

are not immediately available and have to be


calculated using the coordinate transformation from ) , ( y x to

) , ( t s . The widely used, also the


simplest, implementation for the coordinate transformation is by bilinear and cubic
interpolations. The paper [LKA04] and its references give more background about the
implementation details. The beauty of using coordinate transformation to generate projections is
that a high level of accuracy can be achieved if the original function ) , ( y x f has better
smoothness, and the hardware can be designed to efficiently calculate the projections.
Throughout this book, the projections will be generated using eqns (3.1-3.3). The
implementations of eqns (3.1-3.3) are carried out in the class ProjectionSimulator through the
following functions
ProjectorDPar(double **Source, int dim, double **Radon, int angle),
ProjectorDPar(double **Source, int dim, double **Radon, int angle, double **atten),
ProjectorDPar(double **Source, int dim, double **Radon, int angle, double atten)
The detailed function description can be found in the Chapter VI. One may set any digital image
as input to generate the projections including the uniform and nonuniform attenuation.
Without specific requirements, we always use the bilinear interpolation for all coordinate
transformation throughout this book. The bilinear interpolation is implemented by the following
formula
)) , ( ) , ( ) , ( ) , ( (
)) , ( ) , ( ( )) , ( ) , ( ( ) , ( ) , (
1 1 1 1
1 1
+ + + +
+ +
+ +
+ + =
j i j i j i j i y x
j i j i y j i j i x j i n m
y x f y x f y x f y x f
y x f y x f y x f y x f y x f t s f
k

, (3.4)
where
) sin cos (
k k
n m floor i = , i n m
k k x
= sin cos ,
) cos sin (
k k
n m floor j + = , and j n m
k k y
+ = cos sin .
Vice versa, one can interpolate ) , (
n m
t s f
k

to obtain ) , (
j i
y x f . The C++ implementation of eqn
(3.4) is carried out in the C++ class ProjectionSimulator through the following function
RotateCarte(double **img_in, double **img_out, int dim, double radian)
Certainly, there are other more complicated interpolation techniques with very high accuracy.
More details see [LKA04] and the references. In most cases, the bilinear interpolation is
sufficient enough.
In the literature, the so-called strip integral, being used to derive the system coefficients
in ART and EM iterative reconstruction algorithms, does not have the same accuracy as the
geometric transformation in generating the projections. The most terrible thing with strip integral
is its huge amount of manipulations on memory and CPU in the evaluation of contribution
coefficients of each pixel to every projection bin.
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
15 of 27
Section 3.02 Selection of digital filters
The dicretization of H and T play the most important roles in the numerical implementation of
various reconstruction algorithms. There have been thorough investigations on the regularization
of T in the literature. Some are listed below.

Rectangular:

2
/
/
1 ) / cos( ) / sin(
| |
2
1
) (
l
l
l
l
d e l T
il
REC

=
=


.
Cosine:
))] / sin( 1 (
2
2
) / cos( [
) 2 (
1
))] / sin( 1 (
2
2
) / cos( [
) 2 (
1
) 2 / cos( | |
2
1
) (
/
/




+
+
+

+
=
=


l
l
l
l
l
l
l
l
d e l T
il
COS


Hanning:
2 / )) ( ) ( (
)) 2 / cos( 5 . 0 5 . 0 ( | |
2
1
) (
/
/
l T l T
d e l T
COS REC
il
HAN
+ =
+ =


.
Shepp-Logan:

))] / sin( 1 (
2
2
)) / sin( 1 (
2
2
[
1
) 2 / sin( 2
| |
2
1
) (
/
/


+ +
+
=


l
l
l
l
d e l T
il
SL

.
Butterworth:


+
=
/
/
2
) / ( 1
1
| |
2
1
) (

d e l T
il
n BUT
with 0 > n .
Hereafter, denotes the sampling step for distance variable l . The regularization of H could
take the following form.

Rectangular:
)) / cos( 1 (
1
) sign(
2
) (
/
/
=
=


l
l
d e
i
l H
il
REC

.
Cosine:
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
16 of 27
)) / sin( 1 (
) 2 (
1
)) / sin( 1 (
) 2 (
1
) 2 / cos( ) sign(
2
) (
/
/


+ +
+
=
=


l
l
l
l
d e
i
l H
il
COS

.
Kunyansky:

>

+
+

=
=
1 )
1
1
ln
1
ln
1
(
1
1 , 0 / 2 ln 2
) (
2
2
n
n
n
n
n
n
n n
n H
KL

.
When 0 < n , ) ( ) ( n H n H
KL KL
= . The digital version of Kunyanskys implementation in
[KUNYANSKY01] seemed to have better smoothness in numerical evaluations.
For the noise treatment, the nonlinear filter is very useful to remove the individual spots
in images.
Section 3.03 FBP algorithm for parallel-beam data
The FBP implementation procedure of [2] first introduced the so-called Shepp-Logan filter with
the following form
)) 25 . 0 ( /( 0 . 1 ) (
2
n n T
SL
= . (3.5)
Then, the discrete version of eqn (2.13) can be expressed in the following two steps:

=
n
k n SL k m F
l p n m T s p ) , ( ) ( ) , ( , (3.6F)

<
+
+ =
K k
k k n F k n k k n F k n j i
s p s p
K
y x f
0
1 ) ( ) ( ) ( ) (
)) , ( ) , ( ) 1 (
2
1
) , ( , (3.6B)
where K is the total projection views in ] , 0 [ , ) sin cos ( ) (
k j k i
y x floor k n + = and
) ( sin cos
) (
k n y x
k j k i k n
+ = . Eqn (3.6F) is the so-called filtering step, and eqn (3.6B) is
the backprojection step. Notice that the linear interpolation is used in the backprojection.
Certainly, the kernel function ) (n T
SL
may be replaced by a lot of other discrete filters such as
ramp, cosine, Hanning filters and etc. However, the author thinks the Shepp-Logan filter is one
of the most elegant ones. The C++ implementation is carried out in the class ReconAnalytical
by the following function
FBP_Parall(double **Radon, int angle, int rays, double **image, int dim)
Here we assume that the reconstructed image has the same resolution as the projections along the
detector line.
The corresponding discrete version of eqn (2.14) is almost identical to eqns. (3.6F-B),
and will be left for readers to derive the exact formulae. With the advent of the inversion formula
(2.15), the exponential Radon transform may not be as important as used to be from a practical
point of view. Anyway, its C++ implementation is performed in the class ReconAnalytical by
the following function
FBP_Parall(double **Radon, int angle, int rays, double **image, int dim, double atten)
The discrete version of eqn (2.15) basically follows the same procedure. A direct
discretization of Novikovs inversion formula was used in [NATTERER01] and
[KUNYANSKY01]. The implementation can be described as the following steps:
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
17 of 27

+
=
n
k n
l h
KL k m F
l p e n m H s p
k n
) , ( ) ( ) , (
) , (


, (3.7F)
=
+
/ )) , ( ) , ( ( 5 . 0 ) , (
1 1 k m F k m F k m F
s p s p s p , (3.7D)

<
+
+ =
K k
k k n F k n k k n F k n k m k q k j i
s p s p A
K
y x f
0
1 ) ( ) ( ) ( ) ( ) ( ), ( ,
))) , ( ) , ( ) 1 (( Re
2
1
) , ( , (3.7B)
where
) , ( ) , (
) ( ), ( ,
) ( ) ( ) ( k k q k m k q
k
s h t s a
k m k q k
e A

+

= ,
) sin cos ( ) (
k j k i
y x nearest k q + =
and
) cos sin ( ) (
k j k i
y x nearest k m + = .
Another alternate implementation of Novikovs inversion formula was investigated in [YOU05a]
toward better noise treatment. First, we need to rewrite eqn (2.15) as
) sin(
) cos(
) , (
) , ( ) , ( 2
0
) sin(
) cos(
) , ( ) , ( ) , (
2
0
1
) , ( ) (
4
1
Re
) , ( ) (
4
1
Re ) , (

=
=

=
=



+
+
+ +

+
=


r t
r s
l h
s h t s a
r t
r s
l h s h t s a
dl l p e l s H
s
e
d
dl l p e l s T e d r p R
. (3.8)

Following the similar procedure as (3.6F-B), the reconstruction for the first term of (3.8) can be
described as

+
=
n
k n
l h
k m F
l p e n m T s p
k n
) , ( ) ( ) , (
) , ( 1


, (3.9F1)

<
+
+ =
K k
k k n F k n k k n F k n k m k q k j i
s p s p A
K
y x f
0
1 ) (
1
) ( ) (
1
) ( ) ( ), ( ,
1
))) , ( ) , ( ) 1 ((
2
1
Re ) , ( . (3.9B1)
We choose the nearest integer since the attenuation is less sensitive to reconstruction, for details
in [YOU05a]. The reconstruction for the second term of (3.8) follows the similar procedure as

+
=
n
k n
l h
KL k m F
l p e n m H s p
k n
) , ( ) ( ) , (
) , ( 2


, (3.9F2)

<
+
+ =
K k
k k n F k n k k n F k n k m k q k j i
s p s p B
K
y x f
0
1 ) (
2
) ( ) (
2
) ( ) ( ), ( ,
2
))) , ( ) , ( ) 1 ((
2
1
Re ) , ( , (3.9B2)
where
2 / ) (
) ( , 1 ) ( , ) ( , 1 ) ( , ) ( ), ( , k m k q k k m k q k k m k q k
A A B
+
= .
Notice that the majority of calculations in the implementation of (3.8) is from the weighting
factors ) , (
) ( ) ( k m k q
t s a
k

and ) , (
) ( k k q
s h
+
. The C++ implementation of those two algorithms is
carried out in the class ReconAnalytical through the functions
FBP_ParKL(double **Radon, int angle, int rays, double **image, int dim, double **atten)
FBP_Parall(double **Radon, int angle, int rays, double **image, int dim, double **atten)
Certainly, there have been a lot of other implementations for those analytical inversions in the
literature. The implementations here are the simplest ones to demonstrate the procedure from
mathematics to digital realization without considering any other degradation factors such as
noise, blurring and collimator response.
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
18 of 27
Section 3.04 FBP algorithm for fan-beam data
Section 3.05 Circular harmonic decomposition algorithm
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
19 of 27
Chapter IV Iterative Reconstruction Methods
Within the analytical framework, the projections are defined by the Radon-type transforms and
the image can be reconstructed by using the inversions of the Radon-type transforms. The
explicit inversion usually represents a strong stability in image reconstruction. However, any
iterative reconstruction method starts with an object function and establishes a relation between
the discretized object function and the discrete projections. That relation can be very broad to
cover a lot of application-dependent factors such as attenuation, collimator response and scatter
in SPECT, and is the so-called modeling procedure in the iterative reconstruction. Then, a
minimization problem could be formed either using the statistic theory or the linear algebra
theory to measure the distance between the acquired projections and the model-generated
projections. The remaining work will be concentrated on the search of one discrete object
function to reach the minimization. In general, there is no information on the uniqueness of the
estimated object function since the formed minimization problem is, in general, an ill-posed
problem.
The goal of iterative reconstruction methods is to find a stable and convergent procedure
to realize the minimization problem either globally or locally. In the computational mathematics,
there have been a lot of very general algorithms for the minimization problem that can be readily
used. As a matter of fact, a lot of iterative algorithms have been covered, more or less, in the
popular textbooks on the computational mathematics. It is a mercy for NIH to spend millions of
dollars for so many redundant researches. In this chapter, we will present our understanding of
the iterative reconstruction methods and introduce some efficient and accurate numerical
implementations to the most popular iterative reconstruction algorithms such as ML-EM and
ART.
Section 4.01 ML-EM algorithm
Within the ML-EM theory, for each projection angle
k
, we may assume that ) , (
n m
t s f
k

are the
ideal parameters to be estimated and ) , (
k m
s p are the true mean calculated using the ideal
parameters. Let ) , P(
k m
s be the trial value of a Poisson random variable with the mean of
) , (
k m
s p . Then, the likelihood of all trial values )} , {P(
k m
s along viewing angle
k
can be
defined as
)! , P(
) , (
) , P( ) , (
k m
s
k m
s p
m
k
s
s p e
L
k m k m

= . (4.1)
In SPECT and PET, ) , P(
k m
s will represent the acquired projection data while
) , (
n m
t s f
k

represents the ideal density distribution of the radiotracer being injected in the human
body. The procedure of ML-EM algorithm is to find ) , (
n m
t s f
k

so that
k
L reaches its
maximization. Let ) , (
) 0 (
n m
t s f
k

be an initial guess of ) , (
n m
t s f
k

, then ML-EM algorithm


indicates that
) , (
) , (
) , ( ) , (
) 0 (
) 0 ( ) 1 (
k m
k m
n m n m
s p
s p
t s f t s f
k k


= (4.2)
arrives at the maximum of the eqn. (1). By averaging all projection angles, we would have the
following equation
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
20 of 27
) , (
) , ( ) , (
1
) , (
1
) , (
) 0 (
) 0 (
, , ,
, ,
) 1 (
, , ,
, ,
) 1 (
k m
k m n m k
j i n m
n m k
n m
k
j i n m
n m k
j i
s p
s p t s f
C
K
t s f C
K
y x f
k
k

=
=
(4.3)
as an estimator of ) , (
j i
y x f , here
k
n m
C
,
represents the interpolation coefficients. Using linear
interpolation, the eqn. (3) becomes

<
+
+ =
K k
k q k q k q k q
j i
j i
p p
K
y x f
y x f
0
) 0 (
1 ) ( ) (
) 0 (
) ( ) (
) 0 (
) 1 (
) ) 1 (
) , (
) , ( , (4.4)
where
) sin cos ( ) (
k j k i
y x floor k q + = ,
) ( sin cos
) (
k q y x
k j k i k q
+ =
and
) , (
) , (
) (
) 0 (
) ( ) 0 (
) (
k k q
k k q
k q
s p
s p
p

= .
Notice that the linear attenuation map is not involved in the iterations. Therefore, by the
coordinate transform, the implementation of ML-EM algorithm becomes significantly simple
and efficient. Certainly, the accuracy will increase because of the better accuracy of linear
interpolation compared with the strip integral.
Section 4.02 ART method
The algebraic reconstruction technique (ART) had been around for a while since the early
1970s. Actually, we may modify the eqn. (2) to obtain a similar iterative procedure as the
original ART iteration. Rewrite the eqn. (2) as
N
s p s p
t s f
e t s f
s p s p t s f
t s f t s f
k m k m
n m
t s a
n m
n
k m k m n m
n m n m
k
n m
k
k
k
k k
) , ( ) , (
) , (
) , (
)) , ( ) , ( )( , (
) , ( ) , (
) 0 (
) 0 (
) , (
) 0 (
) 0 ( ) 0 (
) 0 ( ) 1 (

+ =

. (4.5)
Combining all projection angles, we have the following iterative reconstruction procedure

<
+ +
<
+
+
=
K k
k k q k k q k q
K k
k k q k k q k q
j i j i
s p s p
NK
s p s p
NK
y x f y x f
0
1 ) (
) 0 (
1 ) ( ) (
0
) (
) 0 (
) ( ) (
) 0 ( ) 1 (
)) , ( ) , ( (
1
)) , ( ) , ( )( 1 (
1
) , ( ) , (

. (4.6)
Section 4.03 Summary of iterative reconstruction methods
In the authors view, there is not much difference among many so-claimed new iterative
reconstruction algorithms. Actually, if the discrete linear system has a unique solution, all
methods would arrive at the same solution. However, one may add as many constraints as
needed in order to guarantee the iteration to be convergent without knowing any information on
the solution. The big difference between analytical and iterative methods is in that the iterative
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
21 of 27
scheme might converge but has never been proven to converge to the object function while the
analytical method would guarantee the solution to be the object function.
In the eqns. (3) and (6), the average could be performed on any number of projection
angles instead of all projection angles, leading to the ordered-subset EM or ART algorithms so
that the convergence speed could increase significantly.
Chapter V Reconstruction for Cone-Beam Data
Chapter VI Limited Angle Problem
Chapter VII Implementation in C++
There are three major classes being designed for the numerical implementation of all
reconstruction algorithms discussed in this book. A simple diagram of those objects is as follows










Also, there are a lot of other utility tools being developed. Throughout this book, the function
) , ( y x f will be chosen as the well-known Shepp-Logan phantom in all simulations.
Section 7.01 Class ProjectionSimulator
There are mainly three groups of functions being implemented in this class: 1) public utility
functions, 2) synthetic projections using exact line integral and 3) discrete projections using the
eqn. (ChII-2). Also, some template functions are provided for the memory management. The
projections can be generated using different data acquisition geometries such as parallel-, fan-
and cone-beam. The corresponding geometric parameters are defined in the header file
ProjectionSimulator.h. We copy that header file in the following while the detailed code
documentation is provided in the format of html from www.cubic-imaging.com.

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
The following section defines the geometric parameters in synthesizing parallel-, fan- and cone-
beam projections. The graphic description can be found in the preceding chapters.

//! distance between the rotation center and the boundary of the image to be reconstructed
const double RADIUS_IMAGE = 1.0;

//! distance between the rotation center and the data detector plane
const double RADIUS_DETC = 1.0;

//! distance between the rotation center and the fan focal point
ProjectionSimulator
ReconAnalytical
Figure 3
ReconIterative
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
22 of 27
const double RADIUS_FOCA = 2.0;

//! fan subtending angle covered by the detector, (60 degree from -30 to 30)
const double RAY_VIEW = (4.141592654/3.0);

//! the diameter of the fan field of view on the detector plane
const double RAY_FOV = (3.0*1.7320508075689);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
The following section defines the interface for class ProjectionSimulator

//! class for synthesizing the Shepp-Logan phantom and projections
class ProjectionSimulator
{
public:
ProjectionSimulator();
~ProjectionSimulator();

public:
//! synthesize the 2-dimensional Shepp-Logan phantom
void GenerateSLPhantom(double ** SLImg, int dim);

//! synthesize the 3-dimensional Shepp-Logan phantom
void GenerateSLPhantom(double ***SLVol, int dim, int slice);

//! synthesize the 2-dimensional chest-like attenuation map
void GenerateAttenMap(double ** attMap, int dim);

//! synthesize the parallel-beam projections using analytical formula (180)
void ProjectorAPar(double **Radon, int angle, int bin);

//! synthesize the parallel-beam projections for exponential Radon transform (360)
void ProjectorAPar(double **Radon, int angle, int bin, double mu);

//! synthesize fan-beam projections transform for equiangular raysum (360)
void ProjectorAFanA(double **Radon, int angle, int ray, double mu = 0.);

//! synthesize fan-beam projections for equally spaced raysum (360)
void ProjectorAFanD(double **Radon, int angle, int ray, double mu = 0.);

//! synthesize the parallel-beam projections using coordinate transform (180)
void ProjectorDPar(double **Image, int dim, double **Radon, int angle);

//! synthesize the parallel-beam projections using coordinate transform (360)
void ProjectorDPar(double **Image, int dim, double **Radon, int angle, double atten);
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
23 of 27

//! synthesize the attenuated parallel-beam projections using coordinate transform (360)
void ProjectorDPar(double **Image, int dim, double **Radon, int angle, double
**atten_map);

//! synthesize attenuated fan-beam projections using coordinate transform (360)
void ProjectorDFanA(double **Radon, int angle, int ray, double **Image, int dim,
double **atten = 0);

//! synthesize attenuated fan-beam projections using coordinate transform (360)
void ProjectorDConeA(double ***Radon, int angle, int theta, int phi, double ***Image,
int dimZ, int dimXY, double ***atten = 0);

public:
//! 5-point smoothing
static void Smooth5(double **IMAGE, int row, int col);

//! 9-point smoothing
static void Smooth9(double **IMAGE, int row, int col);

//! 5-point median filtering
static void FilterMedian(double **IMAGE, int row, int col);

//! coordinate transform between (x, y) and (s, t)
static void RotateCarte(double **image_in, double **image_out, int dim,
double radian);

//! coordinate transform between (x, y) and (s, t)
static void RotateCarte(double **image_in, float **image_out, int dim,
double radian);

//! coordinate transform from (x, y) to (phi, theta) for equiangular raysum
static void CarteToPolarA(double **carImage, int dim, double **polImage, int angle,
double focalPos);

//! coordinate transform from (phi, theta) to (x, y) for equiangular raysum
static void PolarAToCarte(double **polImage, int angle, double focalPos,
double **carImage, int dim);

//! coordinate transform from Cartesian to Spheric
static void CarteToConeA(double ***carImage, int dimZ, int dimXY,
double ***coneImage, int theta, int phi, double focalPos);

//! coordinate transform from Spheric to Cartesian
static void ConeAToCarte(double ***coneImage, int theta, int phi, double focalPos,
double ***carImage, int dimZ, int dimXY);

Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
24 of 27
private:
double ellip(double x, double y, double x0, double y0, double phi, double a0,
double b0);
double ellip(double x, double y, double z, double x0, double y0, double z0, double theta,
double phi, double a0, double b0, double c0);
double ellipProj(double x0, double y0, double phi, double a, double b, double l,
double theta, double mu);
};
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Also, we provide the following memory management utility functions just for the sake of
convenience in your coding.

//! allocate memory for matrix
template<class TT>
inline TT ** CreateMatrix(int row, int col)
{
TT **matrix;
matrix = new TT *[row];
matrix[0] = new TT[row*col];
memset(matrix[0], 0, sizeof(TT)*row*col);
for(int i=1; i<row; i++) matrix[i] = matrix[0] + col*i;
return matrix;
}

//! free the matrix memory
template<class TT>
inline FreeMatrix(TT ** matrix)
{
delete[] matrix[0]; delete[] matrix;
}

//! allocate the volumetric data
template<class TT>
inline TT *** CreateVolume(int slice, int row, int col)
{
TT *** volume;
volume = new TT **[slice];
volume[0] = new TT*[slice*row];
for(int i=1; i<slice; i++) volume[i] = volume[0] + row*i;
volume[0][0] = new TT[slice*row*col];
memset(volume[0][0], 0, sizeof(TT)*slice*row*col);
for(int j=0; j<slice; j++)
for(i=0; i<row; i++) volume[j][i] = volume[0][0] + j*row*col + i*col;
}
return volume;
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
25 of 27
}

//! free the volumetric data
template<class TT>
inline FreeVolume(TT *** volume)
{
delete[] volume[0][0]; delete[] volume[0]; delete[] volume;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Section 7.02 Class ReconAnalytical
Two types of analytical methods are implemented in this class: 1) FBP algorithm and 2)
CHD algorithm. Certainly, there are a lot of other equivalent algorithms in the literature. We may
add some of them in the future. Some commonly used filters are provided in this class as private
functions.
Section 7.03 Class ReconIterative
At this moment, only the standard ML-EM and ART methods are implemented in this
class for three different data acquisition geometries: parallel-, fan- and cone-beam. The projector
in those iterative methods is implemented using the eqn. (ChII-2) or the like.
Section 7.04 COM wrapper and VB interface
For easy-to-use, we use COM DLL to wrap the three classes mentioned above and then
provide a VB GUI to generate and display the projections. The reconstruction can be based on
dynamically generated projections or user-provided projections with required format. Also, some
utility tools are provided to compare the reconstruction results.
Chapter VIII References
[ABK98] E. V. Arbuzov, A. L. Bukhgeim, and S. G. Kazantsev, Two-dimensional tomography
problems and the theory of A-analytic functions, Siberian Advances in Mathematics, vol. 8, pp.
1-20, 1998.
[CORMACK63] A. M. Cormack, Representation of a function by its line integrals, with some
radiological applications, J. Appl. Phys., vol. 34, pp. 2722-2727, 1963.
[DLR77] A. P. Dempster, N. M. Laird and D. B. Rubin, Maximum likelihood from incomplete
date via the EM algorithm, J. Roy. Stat. Soc. Ser. B, Vol. 39, pp. 1-38, 1977.
[DSDSS04] S. R. Dooley, R. W. Stewart, T., S. Durrani, S. K Starehdan, and J. J. Soraghan,
Efficient implementation of accurate geometric transformations for 2-D and 3-D image
processing, IEEE Trans. On Image Processing, Vol. 13, pp. 1060-1065, 2004.
[GBH70] R. Gordon, R Bender and G. T. Herman, Algebraic reconstruction techniques (ART)
for three dimensional electron microscopy and X-ray photography, J. Theory Biol., Vol. 29, pp.
471-481, 1970.
[GN04] J-P Guillement and R. Novikov, A noise property analysis of single-photon emission
computed tomography data, Inverse Problems, Vol. 20, pp. 175-198, 2004.
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
26 of 27
[HERMAN81] G. Herman, Image Reconstruction from Projections: The fundamentals of
computerized tomography, Academic Press, New York, 1981.
[HM93] G. T. Herman and M. B. Mayer, Algebraic reconstruction techniques can be made
computationally efficient, IEEE Trans. Medical Imaging, Vol. 12, pp. 600-609, 1993.
[HN77] G. T. Herman and A. V. Naparstek, Fast image reconstruction based on a Radon
inversion formula appropriate for rapidly collected data, SIAM J Appl Math, vol. 33, pp. 511-
533, 1977.
[HL] H. M. Hudson and R. S. Larkin, Accelerated image reconstruction using ordered subsets
of projection data , IEEE Trans. Medical Imaging, Vol. 13, pp. 600-609, 1994.
[HORN79] B. K. P. Horn, Fan-beam reconstruction methods, Proceeding of The IEEE, vol. 67,
pp. 1616-1623, 1979.
[KS87] A. C. Kak and M. Slaney: Principles of Computerized Tomography, Piscataway, NJ:
IEEE, 1987.
[KUNYANSKY01] L. A. Kunyansky, A new SPECT reconstruction algorithm based on the
Novikov explicit inversion formula, Inverse Problems, Vol. 17, pp. 293-306, 2001.
[LC84] K. Langer and R. Carson, EM reconstruction algorithms for Emission and Transmission
tomography, J. Comp. Ass. Tomogr., Vol. 8, pp. 302-316, 1984.
[LKA04] H. Lu, Y. Kim, and J. M. Anderson, Improved Poisson intensity estimation: denoising
application using Poisson data, IEEE Trans. Image Processing, Vol. 13, pp. 1128-1135, 2004.
[NATTERER86] F. Natterer, The Mathematics of Computerized Tomography, Wiley-Teubner,
New York, 1986.
[NATTERER 01] F. Natterer, Inversion of the attenuated Radon transform, Inverse Problems,
vol. 17, pp. 113-119, 2001.
[NW01] F. Natterer and F. Wbbeling, Mathematical methods in image reconstruction, SIAM
monographs on mathematical modeling and computation, 2001.
[NDCK02] F. Noo, M. Defrise, R. Clackdoyle, and H. Kudo: Image reconstruction from fan-
beam projections on less than a short scan. Phys. Med. Biol., vol. 47, pp. 2525-2546, 2002.
[NOVIKOV02] R. G. Novikov, An inversion formula for the attenuated X-ray transformation,
Ark. Math., vol. 40, pp. 145-167, 2002.
[PAPOULIS65] A. Papoulis, Probability, random variables and stochastic process, McGraw-
Hill, New York, 1965.
[PTVF92] W. H. Press, S. A. Teukolsy, W. T. Vetterling and B. P. Flannery, Numerical Recipes
in C, Cambridge University Press, 1992.
[PURO01] A. Puro, Cormack-type inversion of exponential Radon transform, Inverse
Problems, vol. 17, pp. 179-188, 2001.
[QUINTO98] E. T. Quinto, Exterior and limited angle tomography in nondestructive
evaluation, Inverse Problems, vol. 14, pp. 339-353, 1998.
[RADON17] J. Radon, ber die Bestimmung von Funktionen durch ihre Integralwerte lngs
gewisser Mannigfaltigkeiten, Ber. Verh. Schs. Akad. Wiss. Leipzig, Math.-Nat. K1 69 2627,
1917.
Image Reconstruction from Projections math and C++ implementation 2/27/2005, Jason You
27 of 27
[RULLGARD04] H. Rullgrd, Stability of the inverse problem for the attenuated Radon
transform with 180 data, Inverse Problems, vol. 20, pp. 781-797, 2004.
[SL74] L. Shepp and B. Logan, The Fourier reconstruction of a head section, IEEE Trans.
Nuclear Science, vol. 21, pp. 21-43, 1974.
[SV82] L. A. Shepp, and Y. Vardi, Maximum likelihood reconstruction in Positron Emission
Tomography, IEEE Trans. Medical Imaging, Vol. 1, pp. 113-122, 1982.
[TM80] O. Tretiak and C. E. Metz, The exponential Radon transform, SIAM J Appl Math, vol.
39, pp. 341-354, 1980.
[YOU05] J. You, Noise analysis and treatment for SPECT imaging via an FBP algorithm with
classical filters, Preprint, 2005.
[YLB98] J. You., Liang Z. and Bao S., A harmonic decomposition reconstruction algorithm for
spatially varying focal length collimators, IEEE Trans. Medical Imaging, vol. 17, pp. 995-1002,
1998.
[YLZ99] J. You, Z. Liang, and G. L. Zeng, A unified reconstruction framework for both
parallel-beam and variable focal-length fan-beam collimators by a Cormack-type inversion of
exponential Radon transform, IEEE Trans. Med. Imaging, vol. 18, pp. 59-65, 1999.
[YZL05] J. You, G. L. Zeng and Z. Liang, FBP algorithms for attenuated fan-beam projections,
Inverse Problems, Vol. 21, pp. *-*, 2005.

You might also like