r544: no message
[ctsim.git] / doc / ctsim-concepts.tex
index ff76a9e52768e5ee2c1f07d2b5bd2c4df1985f2d..29a0fad3b1d294fc0f2819c0c22ced9fd42a3f35 100644 (file)
@@ -1,8 +1,8 @@
-\chapter{Concepts}\index{Concepts}%
-\setheader{{\it CHAPTER \thechapter}}{}{}{\ctsimheadtitle}{}{{\it CHAPTER \thechapter}}%
-\ctsimfooter%
+\chapter{Concepts}
+\setheader{{\it CHAPTER \thechapter}}{}{}{\ctsimheadtitle}{}{{\it CHAPTER \thechapter}}
+\ctsimfooter
 
-\section{Overview}\label{conceptoverview}\index{Conceptual Overview}%
+\section{Overview}\index{Conceptual Overview}
 The operation of \ctsim\ begins with the phantom object.  A
 phantom object consists of geometric elements.  A scanner is
 specified and the collection of x-ray data, or projections, is
@@ -14,13 +14,14 @@ compared to the original phantom object.
 In order to use \ctsim\ effectively, some knowledge of how
 \ctsim\ works and the approach taken is required. \ctsim\ deals with a
 variety of object, but the two primary objects that we need to be
-concerned with are the \emph{phantom} and the \emph{scanner}.
+concerned with are the \helprefn{phantom}{conceptphantom} and the
+\helprefn{scanner}{conceptscanner}.
 
 \section{Phantoms}\label{conceptphantom}
-\subsection{Overview}\label{phantomoverview}\index{Phantom Overview}%
+\subsection{Overview}\label{phantomoverview}\index{Phantom!Overview}%
 
 \ctsim\ uses geometrical objects to describe the object being
-scanned. A phantom is composed a one or more phantom elements.
+scanned. A phantom is composed of one or more phantom elements.
 These elements are simple geometric shapes, specifically,
 rectangles, triangles, ellipses, sectors and segments. With these
 elements, the standard phantoms used in the CT literature can be
@@ -32,25 +33,25 @@ user-defined phantoms.
 The types of phantom elements and their definitions are taken with
 permission from G.T. Herman's 1980 book\cite{HERMAN80}.
 
-\subsection{Phantom File}\label{phantomfile}\index{Phantom file syntax}
+\subsection{Phantom File}\label{phantomfile}\index{Phantom!File syntax}
 Each line in the text file describes an element of the
 phantom.  Each line contains seven entries, in the following form:
 \begin{verbatim}
 element-type cx cy dx dy r a
 \end{verbatim}
 The first entry defines the type of the element, either
-\rtfsp\texttt{rectangle}, \texttt{ellipse}, \texttt{triangle},
-\rtfsp\texttt{sector}, or \texttt{segment}. \texttt{cx},
-\rtfsp\texttt{cy}, \texttt{dx} and \texttt{dy} have different
+\texttt{rectangle}, \texttt{ellipse}, \texttt{triangle},
+\texttt{sector}, or \texttt{segment}. \texttt{cx},
+\texttt{cy}, \texttt{dx} and \texttt{dy} have different
 meanings depending on the element type.
 
-\rtfsp\texttt{r} is the rotation applied to the object in degrees
-counterclockwise, and \texttt{a} is the X-ray attenuation
+For all phantom elements, \texttt{r} is the rotation applied to the object in degrees
+counterclockwise and \texttt{a} is the X-ray attenuation
 coefficient of the object. Where objects overlap, the attenuations
 of the overlapped objects are summed.
 
 
-\subsection{Phantom Elements}\label{phantomelements}\index{Phantom elements}
+\subsection{Phantom Elements}\label{phantomelements}\index{Phantom!Elements}
 
 \subsubsection{ellipse}
 Ellipses use \texttt{dx} and \texttt{dy} to define the semi-major and
@@ -88,23 +89,21 @@ of the circle is then drawn between those two points and lies
 below the x-axis. The sector is then rotated and translated the
 same as a segment.
 
-\subsection{Phantom Size}\index{Phantom size}
+\subsection{Phantom Size}\index{Phantom!Size}
 The overall dimensions of the phantom are increased by 1\% above the
 specified sizes to avoid clipping due to round-off errors from
 sampling the polygons of the phantom elements.  So, if the phantom is
-defined as a rectangle of size 0.1 by 0.1, the actual phantom has
-extent 0.101 in each direction.
+defined as a rectangle of size 0.1 by 0.1, the phantom size is
+0.101 in each direction.
 
-\section{Scanner}\label{conceptscanner}\index{Scanner concepts}%
+\section{Scanner}\label{conceptscanner}\index{Scanner!Concepts}%
 \subsection{Dimensions}
 Understanding the scanning geometry is the most complicated aspect of
 using \ctsim. For real-world CT simulators, this is actually quite
 simple. The geometry is fixed by the manufacturer during the
-construction of the scanner and can not be changed. Conversely,
-real-world CT scanners can only take objects up to a fixed size.
-
-\ctsim, being a very flexible simulator,
-gives tremendous options in setting up the geometry for a scan.
+construction of the scanner and can not be changed. \ctsim,
+being a very flexible simulator, gives tremendous options in
+setting up the geometry for a scan.
 
 In general, the geometry for a scan all starts with the size of
 the phantom being scanned. This is because \ctsim\ allows for
@@ -116,10 +115,10 @@ above, the phantom dimensions are also padded by 1\%.
 
 The other important geometry variables for scanning phantoms are
 the \emph{view diameter}, \emph{scan diameter}, and \emph{focal
-length}. These variables are all input into \ctsim\ in terms of
+length}. These variables are input into \ctsim\ in terms of
 ratios rather than absolute values.
 
-\subsubsection{Phantom Diameter}\index{Phantom diameter}
+\subsubsection{Phantom Diameter}\index{Phantom!Diameter}
 \begin{figure}
 $$\image{5cm;0cm}{scangeometry.eps}$$
 \caption{\label{phantomgeomfig} Phantom Geometry}
@@ -129,11 +128,12 @@ the phantom definition. The maximum of the phantom length and
 height is used to define the square that completely surrounds the
 phantom. Let \latexonly{$p_l$}\latexignore{\emph{Pl}} be the width
 and height of this square. The diameter of this boundary box,
-\latexonly{$p_d$,}\latexignore{\emph{Pd},} is then
+\latexonly{$p_d$,}\latexignore{\emph{Pd},} is given by the
+Pythagorean theorem and is
 \latexignore{\\\centerline{\emph{Pl x sqrt(2)}}\\}
 \latexonly{\begin{equation}p_d = p_l \sqrt{2}\end{equation}}
-CT scanners actually collect projections around a
-circle rather than a square. The diameter of this circle is also
+CT scanners collect projections around a
+circle rather than a square. The diameter of this circle is
 the diameter of the boundary square \latexonly{$p_d$.  These
 relationships are diagrammed in figure~\ref{phantomgeomfig}.}
 \latexignore{emph{Pd}.}
@@ -141,7 +141,7 @@ relationships are diagrammed in figure~\ref{phantomgeomfig}.}
 \subsubsection{View Diameter}\index{View diameter}
 The \emph{view diameter} is the area that is being processed
 during scanning of phantoms as well as during rasterization of
-phantoms. By default, the \emph{view diameter} \rtfsp is set equal
+phantoms. By default, the \emph{view diameter} is set equal
 to the \emph{phantom diameter}. It may be useful, especially for
 experimental reasons, to process an area larger (and maybe even
 smaller) than the phantom. Thus, during rasterization or during
@@ -165,8 +165,8 @@ By default, the entire \emph{view diameter} is scanned. For
 experimental purposes, it may be desirable to scan an area either
 larger or smaller than the \emph{view diameter}. Thus, the concept
 of \emph{scan ratio}, \latexonly{$s_r$,}\latexignore{\emph{SR},}
-is arises. The scan diameter
-\latexonly{$s_d$}\latexignore{\emph{Sd}} is the diameter over
+is arises. The scan diameter,
+\latexonly{$s_d$,}\latexignore{\emph{Sd},} is the diameter over
 which x-rays are collected and is defined as
 \latexonly{\begin{equation}s_d =v_d s_r\end{equation}}
 \latexignore{\\\centerline{\emph{Sd = Vd x SR}}\\}
@@ -194,7 +194,7 @@ physically impossible and it analagous to have having the x-ray
 source inside of the \emph{view diameter}.
 
 
-\subsection{Parallel Geometry}\label{geometryparallel}\index{Parallel Geometry}
+\subsection{Parallel Geometry}\label{geometryparallel}\index{Parallel geometry}
 
 The simplest geometry, parallel, was used in \mbox{$1^{st}$} generation
 scanners. As mentioned above, the focal length is not used in this simple
@@ -207,7 +207,7 @@ values of less than \texttt{1} are used for these two variables,
 significant distortions will occur.
 
 
-\subsection{Divergent Geometries}\label{geometrydivergent}\index{Divergent geometry}
+\subsection{Divergent Geometries}\label{geometrydivergent}\index{Equilinear geometry}\index{Equiangular geometry}
 \subsubsection{Overview}
 Next consider the case of equilinear (second generation) and equiangular
 (third, fourth, and fifth generation) geometries. In these cases,
@@ -215,20 +215,21 @@ the x-ray beams diverge from a single source to a detector array.
 In the equilinear mode, a single
 source produces a fan beam which is read by a linear array of detectors.  If
 the detectors occupy an arc of a circle, then the geometry is equiangular.
-\latexonly{The configurations are shown in figure~\ref{divergentfig}.}
+\latexonly{These configurations are shown in figure~\ref{divergentfig}.}
 \begin{figure}
 \image{10cm;0cm}{divergent.eps}
 \caption{\label{divergentfig} Equilinear and equiangular geometries.}
 \end{figure}
 
 
-\subsubsection{Fan Beam Angle}
+\subsubsection{Fan Beam Angle}\index{Fan beam angle}
 For these divergent beam geometries, the \emph{fan beam angle}
 needs to be calculated. For real-world CT scanners, this is fixed
 at the time of manufacture. \ctsim, however, calculates the
 \emph{fan beam angle}, $\alpha$, from the \emph{scan diameter} and
-the \emph{focal length} \latexignore{\\$$\emph{alpha = 2 x asin (
-(Sd / 2) / f)}$$\\}
+the \emph{focal length}:
+\latexignore{\centerline{\emph{alpha = 2 x asin (
+(Sd / 2) / f)}}}
 \latexonly{\begin{equation}\label{alphacalc}\alpha = 2 \sin^{-1}
 ((s_d / 2) / f)\end{equation}
  This is illustrated in figure~\ref{alphacalcfig}.}
@@ -250,7 +251,7 @@ To illustrate, the \emph{scan diameter} can be defined as
 \latexignore{\\\centerline{\emph{Sd = Sr x Vr x Pd}}\\}
 
 Further, $f$ can be defined as
-\latexonly{\[f = f_r (v_r p_d / 2)\]}
+\latexonly{\begin{equation} = f_r (v_r p_d / 2)\end{equation}}
 \latexignore{\\\centerline{\emph{F = FR x (VR x Pd)$$\\}}}
 
 Substituting these equations into \latexignore{the above
@@ -267,7 +268,7 @@ Since in normal scanning $s_r$ = 1, $\alpha$ depends only upon the
 
 \subsubsection{Detector Array Size}
 In general, you do not need to be concerned with the detector
-array size. It is automatically calculated by \ctsim. For the
+array size -- it is automatically calculated by \ctsim. For the
 particularly interested, this section explains how the detector
 array size is calculated.
 
@@ -305,18 +306,20 @@ length}. It is calculated as
 \section{Reconstruction}\label{conceptreconstruction}\index{Reconstruction Overview}%
 
 \subsection{Direct Inverse Fourier}
-This method is not currently implemented in \ctsim, however it is
+This method is not currently implemented in \ctsim; however, it is
 planned for a future release. This method does not give results as
-accurate as filtered backprojection. The difference is due primarily
+accurate as filtered backprojection. This is due primarily
 because interpolation occurs in the frequency domain rather than the
 spatial domain.
 
 \subsection{Filtered Backprojection}\index{Filtered backprojection}
 The technique is comprised of two sequential steps:
-filtering projections and then backprojecting the filtered projections. Though
-these two steps are sequential, each view position can be processed individually.
+filtering projections followed backprojecting the filtered projections. Though
+these two steps are sequential, each view position can be processed independently.
 
 \subsubsection{Multiple Computer Processing}
+Since each view can be processed independently, filtered backprojection is amendable to
+parallel processing. Indeed, this has been used in commercial scanners to speed reconstruction.
 This parallelism is exploited in the MPI versions of \ctsim\ where the
 data from all the views are spread about amongst all of the
 processors. This has been testing in a 16-CPU cluster with excellent
@@ -348,15 +351,16 @@ interpolation can be specified.
 Images can be compared statistically. Three measurements can be calculated
 by \ctsim. They are taken from the standard measurements used by
 Herman\cite{HERMAN80}. They are:
-\begin{description}
-\item[$d$] The normalized root mean squared distance measure.
-\item[$r$] The normalized mean absolute distance measure.
-\item[$e$] The worst case distance measure over a $2\times2$ area.
-\end{description}
+
+\begin{twocollist}
+\twocolitem{\textbf{$d$}}{The normalized root mean squared distance measure.}
+\twocolitem{\textbf{$r$}}{The normalized mean absolute distance measure.}
+\twocolitem{\textbf{$e$}}{The worst case distance measure over a \latexonly{$2\times2$}\latexignore{\emph{2 x 2}} pixel area.}
+\end{twocollist}
 
 These measurements are defined in equations \ref{dequation} through \ref{bigrequation}.
 In these equations, $p$ denotes the phantom image, $r$ denotes the reconstruction
-image, and $\bar{p}$ denotes the average pixel value for $p$. Each of the images have a
+image, and $\bar{p}$ denotes the average pixel value of $p$. Each of the images have a
 size of $m \times n$. In equation \ref{eequation} $[n/2]$ and $[m/2]$ denote the largest
 integers less than $n/2$ and $m/2$, respectively.
 
@@ -365,8 +369,10 @@ integers less than $n/2$ and $m/2$, respectively.
 %Tex2RTF can not handle the any subscripts or superscripts for the inner summation unless
 % have a space character before the \sum
 \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}}
-\latexonly{\[\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}|}}}\]}
+\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}}
 \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}}
 \latexonly{where}
-\latexonly{\[\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})\]}
+\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}}
 \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}}
+\begin{comment}
+\end{comment}