r591: Added Center-Detector length to scanning and reconstruction
[ctsim.git] / doc / ctsim-concepts.tex
index 29a0fad3b1d294fc0f2819c0c22ced9fd42a3f35..86a94bccae69761ea5e5370600f1e50940b85da3 100644 (file)
@@ -2,11 +2,11 @@
 \setheader{{\it CHAPTER \thechapter}}{}{}{\ctsimheadtitle}{}{{\it CHAPTER \thechapter}}
 \ctsimfooter
 
-\section{Overview}\index{Conceptual Overview}
+\section{Conceptual 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
-simulated. That projection data can be reconstructed using various
+simulated. This projection data can be reconstructed using various
 user-controlled algorithms producing an image of the phantom
 object. These reconstructions can be visually and statistically
 compared to the original phantom object.
@@ -18,7 +18,6 @@ concerned with are the \helprefn{phantom}{conceptphantom} and the
 \helprefn{scanner}{conceptscanner}.
 
 \section{Phantoms}\label{conceptphantom}
-\subsection{Overview}\label{phantomoverview}\index{Phantom!Overview}%
 
 \ctsim\ uses geometrical objects to describe the object being
 scanned. A phantom is composed of one or more phantom elements.
@@ -31,7 +30,7 @@ Shepp-Logan\cite{SHEPP74}. \ctsim\ also reads text files of
 user-defined phantoms.
 
 The types of phantom elements and their definitions are taken with
-permission from G.T. Herman's 1980 book\cite{HERMAN80}.
+permission from G.T. Herman's publication\cite{HERMAN80}.
 
 \subsection{Phantom File}\label{phantomfile}\index{Phantom!File syntax}
 Each line in the text file describes an element of the
@@ -41,32 +40,35 @@ element-type cx cy dx dy r a
 \end{verbatim}
 The first entry defines the type of the element, either
 \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.
+\texttt{sector}, or \texttt{segment}.
 
 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.
 
+As opposed to the \texttt{r} and \texttt{a} fields, the \texttt{cx},
+\texttt{cy}, \texttt{dx} and \texttt{dy} fields have different
+meanings depending on the element type.
+
+
 
 \subsection{Phantom Elements}\label{phantomelements}\index{Phantom!Elements}
 
 \subsubsection{ellipse}
 Ellipses use \texttt{dx} and \texttt{dy} to define the semi-major and
-semi-minor axis lengths, with the center of the ellipse at \texttt{cx}
-and \texttt{cy}.  Of note, the commonly used phantom described by
+semi-minor axis lengths with the center of the ellipse at \texttt{(cx,cy)}.
+Of note, the commonly used phantom described by
 Shepp and Logan\cite{SHEPP74} uses only ellipses.
 
 \subsubsection{rectangle}
-Rectangles use \texttt{cx} and \texttt{cy} to define the position of
+Rectangles use \texttt{(cx,cy)} to define the position of
 the center of the rectangle with respect to the origin.  \texttt{dx}
 and \texttt{dy} are the half-width and half-height of the rectangle.
 
 \subsubsection{triangle}
-Triangles are drawn with the center of the base at \texttt{(cx,cy)},
-with a base half-width of \texttt{dx} and a height of \texttt{dy}.
+Triangles are drawn with the center of the base at \texttt{(cx,cy)}
+and a base half-width of \texttt{dx} and a height of \texttt{dy}.
 Rotations are then applied about the center of the base.
 
 \subsubsection{segment}
@@ -97,7 +99,6 @@ 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}%
-\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
@@ -105,24 +106,21 @@ 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
+\subsection{Dimensions}
+The geometry for a scan starts with the size of
 the phantom being scanned. This is because \ctsim\ allows for
 statistical comparisons between the original phantom image and
 it's reconstructions. Since CT scanners scan a circular area, the
 first important variable is the diameter of the circle surround
 the phantom, the \emph{phantom diameter}. Remember, as mentioned
-above, the phantom dimensions are also padded by 1\%.
+above, the phantom dimensions are 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 input into \ctsim\ in terms of
+the \emph{view diameter}, \emph{scan diameter}, \emph{focal
+length}, and \emph{center-detector length}. These variables are input into \ctsim\ in terms of
 ratios rather than absolute values.
 
 \subsubsection{Phantom Diameter}\index{Phantom!Diameter}
-\begin{figure}
-$$\image{5cm;0cm}{scangeometry.eps}$$
-\caption{\label{phantomgeomfig} Phantom Geometry}
-\end{figure}
 The phantom diameter is automatically calculated by \ctsim\ from
 the phantom definition. The maximum of the phantom length and
 height is used to define the square that completely surrounds the
@@ -134,9 +132,13 @@ Pythagorean theorem and is
 \latexonly{\begin{equation}p_d = p_l \sqrt{2}\end{equation}}
 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}.}
+the diameter of the boundary square \latexonly{$p_d$.}
+\latexignore{\emph{Pd}.}
+\latexonly{These relationships are diagrammed in figure~\ref{phantomgeomfig}.}
+\begin{figure}
+\centerline{\image{8cm;0cm}{scangeometry.eps}}
+\latexonly{\caption{\label{phantomgeomfig} Phantom Geometry}}
+\end{figure}
 
 \subsubsection{View Diameter}\index{View diameter}
 The \emph{view diameter} is the area that is being processed
@@ -165,7 +167,7 @@ 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,
+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}}
@@ -187,16 +189,31 @@ calculated as
 \latexignore{\\\centerline{\emph{F = (Vd / 2) x FR}}}
 
 For parallel geometry scanning, the focal length doesn't matter.
-However, divergent geometry scanning (equilinear and equiangular),
+However, for divergent geometry scanning (equilinear and equiangular),
 the \emph{focal length ratio} should be set at \texttt{2} or more
 to avoid artifacts. Moreover, a value of less than \texttt{1} is
-physically impossible and it analagous to have having the x-ray
+physically impossible and it analagous to having the x-ray
 source inside of the \emph{view diameter}.
 
+\subsubsection{Center-Detector Length}\index{Center-Detector length}
+The \emph{center-detector length},
+\latexonly{$c$,}\latexignore{\emph{C},}
+is the distance from the center of
+the phantom to the center of the detector array. The center-detector length is set as a ratio,
+\latexonly{$c_r$,}\latexignore{\emph{CR},}
+of the view radius. The center-detector length is
+calculated as
+\latexonly{\begin{equation}f = (v_d / 2) c_r\end{equation}}
+\latexignore{\\\centerline{\emph{F = (Vd / 2) x CR}}}
+
+For parallel geometry scanning, the center-detector length doesn't matter.
+A value of less than \texttt{1} is physically impossible and it analagous to
+having the detector array inside of the \emph{view diameter}.
+
 
-\subsection{Parallel Geometry}\label{geometryparallel}\index{Parallel geometry}
+\subsection{Parallel Geometry}\label{geometryparallel}\index{Parallel geometry}\index{Scanner!Parallel}
 
-The simplest geometry, parallel, was used in \mbox{$1^{st}$} generation
+The simplest geometry, parallel, was used in first generation
 scanners. As mentioned above, the focal length is not used in this simple
 geometry. The detector array is set to be the same size as the
 \emph{scan diameter}.  For optimal scanning in this geometry, the
@@ -208,17 +225,17 @@ significant distortions will occur.
 
 
 \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,
+\index{Scanner!Equilinear}\index{Scanner!Equiangular}
+For both equilinear (second generation) and equiangular
+(third, fourth, and fifth generation) geometries,
 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{These configurations are shown in figure~\ref{divergentfig}.}
 \begin{figure}
-\image{10cm;0cm}{divergent.eps}
-\caption{\label{divergentfig} Equilinear and equiangular geometries.}
+\centerline{\image{10cm;0cm}{divergent.eps}}
+\latexonly{\caption{\label{divergentfig} Equilinear and equiangular geometries.}}
 \end{figure}
 
 
@@ -227,15 +244,15 @@ 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}:
+the \emph{focal length} as
 \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}.}
+((s_d / 2) / f)\end{equation}}
+\latexonly{This is illustrated in figure~\ref{alphacalcfig}.}
 \begin{figure}
-\image{10cm;0cm}{alphacalc.eps}
-\caption{\label{alphacalcfig} Calculation of $\alpha$}
+\centerline{\image{10cm;0cm}{alphacalc.eps}}
+\latexonly{\caption{\label{alphacalcfig} Calculation of $\alpha$}}
 \end{figure}
 
 
@@ -244,14 +261,14 @@ greater than approximately
 \latexonly{$120^\circ$,}\latexignore{120 degrees,}
 there are significant artifacts. The primary way to manage the
 \emph{fan beam angle} is by varying the \emph{focal length} since the
-\emph{scan diameter} by the size of the phantom.
+\emph{scan diameter} is usually fixed at the size of the phantom.
 
 To illustrate, the \emph{scan diameter} can be defined as
 \latexonly{\begin{equation}s_d = s_r v_r p_d\end{equation}}
 \latexignore{\\\centerline{\emph{Sd = Sr x Vr x Pd}}\\}
 
-Further, $f$ can be defined as
-\latexonly{\begin{equation} = f_r (v_r p_d / 2)\end{equation}}
+Further, the \emph{focal length} can be defined as
+\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
@@ -272,57 +289,70 @@ array size -- it is automatically calculated by \ctsim. For the
 particularly interested, this section explains how the detector
 array size is calculated.
 
-For parallel geometry, the detector length is equal to the scan
+For parallel geometry, the detector length is simply the scan
 diameter.
 
 For divergent beam geometries, the size of the detector array also
-depends upon the \emph{focal length}. Increasing the \emph{focal
-length} decreases the size of the detector array while increasing
-the \emph{scan diameter} increases the detector array size.
-
-For equiangular geometry, the detectors are spaced around a circle
-covering an angular distance of
-\latexonly{$2\,\alpha$.}\latexignore{\emph{2 \alpha}.} The dotted
-circle in
+depends upon the \emph{focal length}: increasing the \emph{focal
+length} decreases the size of the detector array.
+
+For equiangular geometry, the detectors are equally spaced around a arc
+covering an angular distance of $\alpha$ as viewed from the source. When
+viewed from the center of the scanning, the angular distance is
+\latexonly{$$\pi + \alpha - 2 \, \cos^{-1} \Big( \frac{s_d / 2}{c} \Big)$$}
+\latexignore{\\\emph{pi + \alpha - 2 x acos ((Sd / 2) / C))}\\}
+The dotted circle
+\latexonly{in figure~\ref{equiangularfig}}
+indicates the positions of the detectors in this case.
+
 \begin{figure}
-\image{10cm;0cm}{equiangular.eps}
-\caption{\label{equiangularfig}Equiangular geometry}
+\centerline{\image{10cm;0cm}{equiangular.eps}}
+\latexonly{\caption{\label{equiangularfig}Equiangular geometry}}
 \end{figure}
-figure~\ref{equiangularfig} indicates the positions of the detectors in this case.
 
-For equilinear geometry, the detectors are space along a straight
-line. The length of the line depends upon
+For equilinear geometry, the detectors are equally spaced along a straight
+line. The detector length depends upon
 \latexonly{$\alpha$}\latexignore{\emph{alpha}} and the \emph{focal
-length}. It is calculated as
-\latexonly{\begin{equation}4\,f \tan (\alpha / 2)\end{equation}}
-\latexignore{\\\centerline{\emph{4 x F x tan(\alpha/2)}}}
-\begin{figure}\label{equilinearfig}
-\image{10cm;0cm}{equilinear.eps}
-\caption{\label{equilinearfig} Equilinear geometry}
-\end{figure}
+length}. This length,
+\latexonly{$d_l$,}\latexignore{Dl,} is calculated as
+\latexonly{\begin{equation} d_l = 2\,(f + c) \tan (\alpha / 2)\end{equation}}
+\latexignore{\\\centerline{\emph{2 x (F + C) x tan(\alpha/2)}}}
 \latexonly{This geometry is shown in figure~\ref{equilinearfig}.}
+\begin{figure}
+\centerline{\image{10cm;0cm}{equilinear.eps}}
+\latexonly{\caption{\label{equilinearfig} Equilinear geometry}}
+\end{figure}
 
 
-\section{Reconstruction}\label{conceptreconstruction}\index{Reconstruction Overview}%
+\section{Reconstruction}\label{conceptreconstruction}\index{Reconstruction overview}%
 
 \subsection{Direct Inverse Fourier}
 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. This is due primarily
-because interpolation occurs in the frequency domain rather than the
+to interpolation occurring in the frequency domain rather than the
 spatial domain.
 
-\subsection{Filtered Backprojection}\index{Filtered backprojection}
+\subsection{Filtered Backprojection}\index{Filtered backprojection}\index{Symmetric multiprocessing}\index{SMP}
 The technique is comprised of two sequential steps:
-filtering projections followed backprojecting the filtered projections. Though
+filtering projections followed by backprojecting the filtered projections. Though
 these two steps are sequential, each view position can be processed independently.
 
-\subsubsection{Multiple Computer Processing}
+\subsubsection{Parallel Computer Processing}\index{Parallel 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
+This parallelism is exploited both in the \ctsim\ graphical shell and
+in the \helpref{LAM}{ctsimtextlam} version of \ctsimtext. \ctsim\ can distribute it's workload
+amongst multiple processors working in parallel.
+
+The graphical shell will automatically take advantage of multiple CPU's when
+running on a \emph{Symmetric Multiprocessing}
+computer. Dual-CPU computers are commonly available which provide a near doubling
+in reconstruction speeds. \ctsim, though, has no limits on the number of CPU's
+that can be used in parallel. The \emph{LAM} version
+of \ctsimtext\ is designed to work in a cluster of computers.
+This has been testing with a cluster of 16 computers in a
+\urlref{Beowulf-class}{http://www.beowulf.org} cluster with excellent
 results.
 
 \subsubsection{Filter projections}
@@ -347,16 +377,16 @@ Backprojection is the process of ``smearing'' the filtered
 projections over the reconstructing image. Various levels of
 interpolation can be specified.
 
-\section{Image Comparison}\index{Image comparison}
+\section{Image Comparison}\label{conceptimagecompare}\index{Image!Comparison}
 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{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}
+\begin{itemize}\itemsep=0pt
+\item[]\textbf{$d$}\quad The normalized root mean squared distance measure.
+\item[]\textbf{$r$}\quad The normalized mean absolute distance measure.
+\item[]\textbf{$e$}\quad The worst case distance measure over a \latexonly{$2\times2$}\latexignore{\emph{2 x 2}} pixel area.
+\end{itemize}
 
 These measurements are defined in equations \ref{dequation} through \ref{bigrequation}.
 In these equations, $p$ denotes the phantom image, $r$ denotes the reconstruction