r549: no message
[ctsim.git] / doc / ctsim-concepts.tex
1 \chapter{Concepts}
2 \setheader{{\it CHAPTER \thechapter}}{}{}{\ctsimheadtitle}{}{{\it CHAPTER \thechapter}}
3 \ctsimfooter
4
5 \section{Overview}\index{Conceptual overview}
6 The operation of \ctsim\ begins with the phantom object.  A
7 phantom object consists of geometric elements.  A scanner is
8 specified and the collection of x-ray data, or projections, is
9 simulated. This projection data can be reconstructed using various
10 user-controlled algorithms producing an image of the phantom
11 object. These reconstructions can be visually and statistically
12 compared to the original phantom object.
13
14 In order to use \ctsim\ effectively, some knowledge of how
15 \ctsim\ works and the approach taken is required. \ctsim\ deals with a
16 variety of object, but the two primary objects that we need to be
17 concerned with are the \helprefn{phantom}{conceptphantom} and the
18 \helprefn{scanner}{conceptscanner}.
19
20 \section{Phantoms}\label{conceptphantom}
21 \subsection{Overview}\label{phantomoverview}\index{Phantom!Overview}%
22
23 \ctsim\ uses geometrical objects to describe the object being
24 scanned. A phantom is composed of one or more phantom elements.
25 These elements are simple geometric shapes, specifically,
26 rectangles, triangles, ellipses, sectors and segments. With these
27 elements, the standard phantoms used in the CT literature can be
28 constructed.  In fact, \ctsim\ provides a shortcut to load the
29 published phantoms of Herman\cite{HERMAN80} and
30 Shepp-Logan\cite{SHEPP74}. \ctsim\ also reads text files of
31 user-defined phantoms.
32
33 The types of phantom elements and their definitions are taken with
34 permission from G.T. Herman's publication\cite{HERMAN80}.
35
36 \subsection{Phantom File}\label{phantomfile}\index{Phantom!File syntax}
37 Each line in the text file describes an element of the
38 phantom.  Each line contains seven entries, in the following form:
39 \begin{verbatim}
40 element-type cx cy dx dy r a
41 \end{verbatim}
42 The first entry defines the type of the element, either
43 \texttt{rectangle}, \texttt{ellipse}, \texttt{triangle},
44 \texttt{sector}, or \texttt{segment}.
45
46 For all phantom elements, \texttt{r} is the rotation applied to the object in degrees
47 counterclockwise and \texttt{a} is the X-ray attenuation
48 coefficient of the object. Where objects overlap, the attenuations
49 of the overlapped objects are summed.
50
51 As opposed to the \texttt{r} and \texttt{a} fields, the \texttt{cx},
52 \texttt{cy}, \texttt{dx} and \texttt{dy} fields have different
53 meanings depending on the element type.
54
55
56
57 \subsection{Phantom Elements}\label{phantomelements}\index{Phantom!Elements}
58
59 \subsubsection{ellipse}
60 Ellipses use \texttt{dx} and \texttt{dy} to define the semi-major and
61 semi-minor axis lengths with the center of the ellipse at \texttt{(cx,cy)}.
62 Of note, the commonly used phantom described by
63 Shepp and Logan\cite{SHEPP74} uses only ellipses.
64
65 \subsubsection{rectangle}
66 Rectangles use \texttt{cx} and \texttt{cy} to define the position of
67 the center of the rectangle with respect to the origin.  \texttt{dx}
68 and \texttt{dy} are the half-width and half-height of the rectangle.
69
70 \subsubsection{triangle}
71 Triangles are drawn with the center of the base at \texttt{(cx,cy)
72 and a base half-width of \texttt{dx} and a height of \texttt{dy}.
73 Rotations are then applied about the center of the base.
74
75 \subsubsection{segment}
76 Segments are complex. They are the portion of an circle between a
77 chord and the perimeter of the circle.  \texttt{dy} sets the
78 radius of the circle. Segments start with the center of the chord
79 located at \texttt{(0,0)} and the chord horizontal. The half-width
80 of the chord is set by \texttt{dx}.  The portion of an circle
81 lying below the chord is then added. The imaginary center of this
82 circle is located at \texttt{(0,-dy)}. The segment is then rotated
83 by \texttt{r} and then translated by \texttt{(cx,cy)}.
84
85 \subsubsection{sector}
86 Sectors are the like a ``pie slice'' from a circle. The radius of
87 the circle is set by \texttt{dy}. Sectors are defined similarly to
88 segments. In this case, though, a chord is not drawn.  Instead,
89 the lines are drawn from the origin of the circle \texttt{(0,-dy)}
90 to the points \texttt{(-dx,0)} and \texttt{(dx,0)}. The perimeter
91 of the circle is then drawn between those two points and lies
92 below the x-axis. The sector is then rotated and translated the
93 same as a segment.
94
95 \subsection{Phantom Size}\index{Phantom!Size}
96 The overall dimensions of the phantom are increased by 1\% above the
97 specified sizes to avoid clipping due to round-off errors from
98 sampling the polygons of the phantom elements.  So, if the phantom is
99 defined as a rectangle of size 0.1 by 0.1, the phantom size is
100 0.101 in each direction.
101
102 \section{Scanner}\label{conceptscanner}\index{Scanner!Concepts}%
103 \subsection{Dimensions}
104 Understanding the scanning geometry is the most complicated aspect of
105 using \ctsim. For real-world CT simulators, this is actually quite
106 simple. The geometry is fixed by the manufacturer during the
107 construction of the scanner and can not be changed. \ctsim,
108 being a very flexible simulator, gives tremendous options in
109 setting up the geometry for a scan.
110
111 The geometry for a scan starts with the size of
112 the phantom being scanned. This is because \ctsim\ allows for
113 statistical comparisons between the original phantom image and
114 it's reconstructions. Since CT scanners scan a circular area, the
115 first important variable is the diameter of the circle surround
116 the phantom, the \emph{phantom diameter}. Remember, as mentioned
117 above, the phantom dimensions are padded by 1\%.
118
119 The other important geometry variables for scanning phantoms are
120 the \emph{view diameter}, \emph{scan diameter}, and \emph{focal
121 length}. These variables are input into \ctsim\ in terms of
122 ratios rather than absolute values.
123
124 \subsubsection{Phantom Diameter}\index{Phantom!Diameter}
125 The phantom diameter is automatically calculated by \ctsim\ from
126 the phantom definition. The maximum of the phantom length and
127 height is used to define the square that completely surrounds the
128 phantom. Let \latexonly{$p_l$}\latexignore{\emph{Pl}} be the width
129 and height of this square. The diameter of this boundary box,
130 \latexonly{$p_d$,}\latexignore{\emph{Pd},} is given by the
131 Pythagorean theorem and is
132 \latexignore{\\\centerline{\emph{Pl x sqrt(2)}}\\}
133 \latexonly{\begin{equation}p_d = p_l \sqrt{2}\end{equation}}
134 CT scanners collect projections around a
135 circle rather than a square. The diameter of this circle is
136 the diameter of the boundary square \latexonly{$p_d$.}
137 \latexignore{\emph{Pd}.}
138 \latexonly{These relationships are diagrammed in figure~\ref{phantomgeomfig}.}
139 \begin{figure}
140 \centerline{\image{8cm;0cm}{scangeometry.eps}}
141 \latexonly{\caption{\label{phantomgeomfig} Phantom Geometry}}
142 \end{figure}
143
144 \subsubsection{View Diameter}\index{View diameter}
145 The \emph{view diameter} is the area that is being processed
146 during scanning of phantoms as well as during rasterization of
147 phantoms. By default, the \emph{view diameter} is set equal
148 to the \emph{phantom diameter}. It may be useful, especially for
149 experimental reasons, to process an area larger (and maybe even
150 smaller) than the phantom. Thus, during rasterization or during
151 projections, \ctsim\ will ask for a \emph{view ratio},
152 \latexonly{$v_r$.}\latexignore{\rtfsp \emph{VR}.} The \emph{view
153 diameter} is then calculated as
154 \latexonly{\begin{equation}v_d = p_dv_r\end{equation}}
155 \latexignore{\\\centerline{\emph{Vd = Pd x VR}}\\}
156
157 By using a
158 \latexonly{$v_r$}\latexignore{\emph{VR}}
159 less than 1, \ctsim\ will allow
160 for a \emph{view diameter} less than
161 \emph{phantom diameter}.
162 This will lead to significant artifacts. Physically, this would
163 be impossible and is analogous to inserting an object into the CT
164 scanner that is larger than the scanner itself!
165
166 \subsubsection{Scan Diameter}\index{Scan diameter}
167 By default, the entire \emph{view diameter} is scanned. For
168 experimental purposes, it may be desirable to scan an area either
169 larger or smaller than the \emph{view diameter}. Thus, the concept
170 of \emph{scan ratio}, \latexonly{$s_r$,}\latexignore{\emph{SR},}
171 arises. The scan diameter,
172 \latexonly{$s_d$,}\latexignore{\emph{Sd},} is the diameter over
173 which x-rays are collected and is defined as
174 \latexonly{\begin{equation}s_d =v_d s_r\end{equation}}
175 \latexignore{\\\centerline{\emph{Sd = Vd x SR}}\\}
176 By default and
177 for all ordinary scanning, the \emph{scan ratio} is to \texttt{1}.
178 If the \emph{scan ratio} is less than \texttt{1}, you can expect
179 significant artifacts.
180
181 \subsubsection{Focal Length}\index{Focal length}
182 The \emph{focal length},
183 \latexonly{$f$,}\latexignore{\emph{F},}
184 is the distance of the X-ray source to the center of
185 the phantom. The focal length is set as a ratio,
186 \latexonly{$f_r$,}\latexignore{\emph{FR},}
187 of the view radius. Focal length is
188 calculated as
189 \latexonly{\begin{equation}f = (v_d / 2) f_r\end{equation}}
190 \latexignore{\\\centerline{\emph{F = (Vd / 2) x FR}}}
191
192 For parallel geometry scanning, the focal length doesn't matter.
193 However, for divergent geometry scanning (equilinear and equiangular),
194 the \emph{focal length ratio} should be set at \texttt{2} or more
195 to avoid artifacts. Moreover, a value of less than \texttt{1} is
196 physically impossible and it analagous to have having the x-ray
197 source inside of the \emph{view diameter}.
198
199
200 \subsection{Parallel Geometry}\label{geometryparallel}\index{Parallel geometry}\index{Scanner!Parallel}
201
202 The simplest geometry, parallel, was used in first generation
203 scanners. As mentioned above, the focal length is not used in this simple
204 geometry. The detector array is set to be the same size as the
205 \emph{scan diameter}.  For optimal scanning in this geometry, the
206 \emph{scan diameter} should be equal to the \emph{phantom
207 diameter}. This is accomplished by using the default values of
208 \texttt{1} for the \emph{view ratio} and the \emph{scan ratio}. If
209 values of less than \texttt{1} are used for these two variables,
210 significant distortions will occur.
211
212
213 \subsection{Divergent Geometries}\label{geometrydivergent}\index{Equilinear geometry}\index{Equiangular geometry}
214 \index{Scanner!Equilinear}\index{Scanner!Equiangular}
215 \subsubsection{Overview}
216 For both equilinear (second generation) and equiangular
217 (third, fourth, and fifth generation) geometries,
218 the x-ray beams diverge from a single source to a detector array.
219 In the equilinear mode, a single
220 source produces a fan beam which is read by a linear array of detectors.  If
221 the detectors occupy an arc of a circle, then the geometry is equiangular.
222 \latexonly{These configurations are shown in figure~\ref{divergentfig}.}
223 \begin{figure}
224 \centerline{\image{10cm;0cm}{divergent.eps}}
225 \latexonly{\caption{\label{divergentfig} Equilinear and equiangular geometries.}}
226 \end{figure}
227
228
229 \subsubsection{Fan Beam Angle}\index{Fan beam angle}
230 For these divergent beam geometries, the \emph{fan beam angle}
231 needs to be calculated. For real-world CT scanners, this is fixed
232 at the time of manufacture. \ctsim, however, calculates the
233 \emph{fan beam angle}, $\alpha$, from the \emph{scan diameter} and
234 the \emph{focal length} as
235 \latexignore{\centerline{\emph{alpha = 2 x asin (
236 (Sd / 2) / f)}}}
237 \latexonly{\begin{equation}\label{alphacalc}\alpha = 2 \sin^{-1}
238 ((s_d / 2) / f)\end{equation}}
239 \latexonly{This is illustrated in figure~\ref{alphacalcfig}.}
240 \begin{figure}
241 \centerline{\image{10cm;0cm}{alphacalc.eps}}
242 \latexonly{\caption{\label{alphacalcfig} Calculation of $\alpha$}}
243 \end{figure}
244
245
246 Empiric testing with \ctsim\ shows that for very large \emph{fan beam angles},
247 greater than approximately
248 \latexonly{$120^\circ$,}\latexignore{120 degrees,}
249 there are significant artifacts. The primary way to manage the
250 \emph{fan beam angle} is by varying the \emph{focal length} since the
251 \emph{scan diameter} is usually fixed at the size of the phantom.
252
253 To illustrate, the \emph{scan diameter} can be defined as
254 \latexonly{\begin{equation}s_d = s_r v_r p_d\end{equation}}
255 \latexignore{\\\centerline{\emph{Sd = Sr x Vr x Pd}}\\}
256
257 Further, the \emph{focal length} can be defined as
258 \latexonly{\begin{equation} f = f_r (v_r p_d / 2)\end{equation}}
259 \latexignore{\\\centerline{\emph{F = FR x (VR x Pd)$$\\}}}
260
261 Substituting these equations into \latexignore{the above
262 equation,}\latexonly{equation~\ref{alphacalc},} We have,
263 \latexonly{
264 \begin{eqnarray}
265 \alpha &=& 2\,\sin^{-1} \frac{\displaystyle s_r v_r p_d / 2}{\displaystyle f_r v_r (p_d / 2)} \nonumber \\
266 &=& 2\,\sin^{-1} (s_r / f_r)
267 \end{eqnarray}
268 } \latexignore{\\\centerline{\emph{\alpha = 2 sin (Sr / Fr)}}\\}
269
270 Since in normal scanning $s_r$ = 1, $\alpha$ depends only upon the
271 \emph{focal length ratio} in normal scanning.
272
273 \subsubsection{Detector Array Size}
274 In general, you do not need to be concerned with the detector
275 array size -- it is automatically calculated by \ctsim. For the
276 particularly interested, this section explains how the detector
277 array size is calculated.
278
279 For parallel geometry, the detector length is simply the scan
280 diameter.
281
282 For divergent beam geometries, the size of the detector array also
283 depends upon the \emph{focal length}: increasing the \emph{focal
284 length} decreases the size of the detector array.
285
286 For equiangular geometry, the detectors are equally spaced around a arc
287 covering an angular distance of
288 \latexonly{$2\,\alpha$.}\latexignore{\emph{2 \alpha}.}
289 The dotted circle
290 \latexonly{in figure~\ref{equiangularfig}}
291 indicates the positions of the detectors in this case.
292
293 \begin{figure}
294 \centerline{\image{10cm;0cm}{equiangular.eps}}
295 \latexonly{\caption{\label{equiangularfig}Equiangular geometry}}
296 \end{figure}
297
298 For equilinear geometry, the detectors are equally spaced along a straight
299 line. The detector length depends upon
300 \latexonly{$\alpha$}\latexignore{\emph{alpha}} and the \emph{focal
301 length}. This length,
302 \latexonly{$d_l$,}\latexignore{Dl,} is calculated as
303 \latexonly{\begin{equation} d_l = 4\,f \tan (\alpha / 2)\end{equation}}
304 \latexignore{\\\centerline{\emph{4 x F x tan(\alpha/2)}}}
305 \latexonly{This geometry is shown in figure~\ref{equilinearfig}.}
306 \begin{figure}\label{equilinearfig}
307 \centerline{\image{10cm;0cm}{equilinear.eps}}
308 \latexonly{\caption{\label{equilinearfig} Equilinear geometry}}
309 \end{figure}
310
311
312 \section{Reconstruction}\label{conceptreconstruction}\index{Reconstruction overview}%
313
314 \subsection{Direct Inverse Fourier}
315 This method is not currently implemented in \ctsim; however, it is
316 planned for a future release. This method does not give results as
317 accurate as filtered backprojection. This is due primarily
318 to interpolation occurring in the frequency domain rather than the
319 spatial domain.
320
321 \subsection{Filtered Backprojection}\index{Filtered backprojection}
322 The technique is comprised of two sequential steps:
323 filtering projections followed by backprojecting the filtered projections. Though
324 these two steps are sequential, each view position can be processed independently.
325
326 \subsubsection{Parallel Computer Processing}\index{Parallel processing}
327 Since each view can be processed independently, filtered backprojection is amendable to
328 parallel processing. Indeed, this has been used in commercial scanners to speed reconstruction.
329 This parallelism is exploited in the MPI versions of \ctsim\ where the
330 data from all the views are spread about amongst all of the
331 processors. This has been testing in a cluster of 16 computers with excellent
332 results.
333
334 \subsubsection{Filter projections}
335 The first step in filtered backprojection reconstructions is the filtering
336 of each projection. The projections for a each view have their frequency data multipled by
337 a filter of $|w|$. \ctsim\ permits four different ways to accomplish this
338 filtering.
339
340 Two of the methods use convolution of the projection data with the
341 inverse Fourier transform of $|w|$. The other two methods perform an Fourier
342 transform of the projection data and multiply that by the $|w|$ filter and
343 then perform an inverse fourier transform.
344
345 Though multiplying by $|w|$ gives the sharpest reconstructions, in
346 practice, superior results are obtained by reducing the higher
347 frequencies. This is performed by mutiplying the $|w|$ filter by
348 another filter that attenuates the higher frequencies. \ctsim\ has
349 multiple filters for this purpose.
350
351 \subsubsection{Backprojection of filtered projections}
352 Backprojection is the process of ``smearing'' the filtered
353 projections over the reconstructing image. Various levels of
354 interpolation can be specified.
355
356 \section{Image Comparison}\label{conceptimagecompare}\index{Image!Comparison}
357 Images can be compared statistically. Three measurements can be calculated
358 by \ctsim. They are taken from the standard measurements used by
359 Herman\cite{HERMAN80}. They are:
360
361 \begin{itemize}\itemsep=0pt
362 \item[-]\textbf{$d$}\quad The normalized root mean squared distance measure.
363 \item[-]\textbf{$r$}\quad The normalized mean absolute distance measure.
364 \item[-]\textbf{$e$}\quad The worst case distance measure over a \latexonly{$2\times2$}\latexignore{\emph{2 x 2}} pixel area.
365 \end{twocollist}
366
367 These measurements are defined in equations \ref{dequation} through \ref{bigrequation}.
368 In these equations, $p$ denotes the phantom image, $r$ denotes the reconstruction
369 image, and $\bar{p}$ denotes the average pixel value of $p$. Each of the images have a
370 size of $m \times n$. In equation \ref{eequation} $[n/2]$ and $[m/2]$ denote the largest
371 integers less than $n/2$ and $m/2$, respectively.
372
373 \latexignore{These formulas are shown in the print documentation of \ctsim.}
374 %
375 %Tex2RTF can not handle the any subscripts or superscripts for the inner summation unless
376 % have a space character before the \sum
377 \latexonly{\begin{equation}\label{dequation} d =\sqrt{\frac{\displaystyle \sum_{i=1}^{n}{ \sum_{j=1}^{m}{(p_{i,j} - r_{i,j})^2}}}{\displaystyle \sum_{i=1}^{n}{ \sum_{j=1}^{m}{(p_{i,j} - \bar{p})^2}}}}\end{equation}}
378 \latexonly{\begin{equation}\label{requation}r = \frac{ \displaystyle \sum_{i=1}^{n}{ \sum_{j=1}^{m}{|p_{i,j} - r_{i,j}|}}}{ \displaystyle \sum_{i=1}^{n}{ \sum_{j=1}^{m}{|p_{i,j}|}}}\end{equation}}
379 \latexonly{\begin{equation}\label{eequation}e = \max_{1 \le k \le [n/2] \atop 1 \le l \le [m/2]}(|P_{k,l} - R_{k,l}|)\end{equation}}
380 \latexonly{where}
381 \latexonly{\begin{equation}\label{bigpequation}P_{k,l} = \textstyle \frac{1}{4} (p_{2k,2l} + p_{2k+1,2l} + p_{2k,2l+l} + p_{2k+1,2l+1})\end{equation}}
382 \latexonly{\begin{equation}\label{bigrequation}R_{k,l} = \textstyle \frac{1}{4} (r_{2k,2l} + r_{2k+1,2l} + r_{2k,2l+1} + r_{2k+1,2l+1})\end{equation}}
383 \begin{comment}
384 \end{comment}