X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=doc%2Fctsim-concepts.tex;h=86a94bccae69761ea5e5370600f1e50940b85da3;hb=HEAD;hp=63d478c20ae2bae6e15a4f508efcd64ed4ae25a0;hpb=07353e6f00d4b1b0c7a9b57b9b42043da29489ba;p=ctsim.git diff --git a/doc/ctsim-concepts.tex b/doc/ctsim-concepts.tex index 63d478c..86a94bc 100644 --- a/doc/ctsim-concepts.tex +++ b/doc/ctsim-concepts.tex @@ -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. @@ -58,18 +57,18 @@ meanings depending on the element type. \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,cy)}. +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} @@ -100,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 @@ -108,7 +106,8 @@ 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 @@ -117,8 +116,8 @@ the phantom, the \emph{phantom diameter}. Remember, as mentioned 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} @@ -193,9 +192,24 @@ For parallel geometry scanning, the focal length doesn't matter. 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}\index{Scanner!Parallel} @@ -212,7 +226,6 @@ significant distortions will occur. \subsection{Divergent Geometries}\label{geometrydivergent}\index{Equilinear geometry}\index{Equiangular geometry} \index{Scanner!Equilinear}\index{Scanner!Equiangular} -\subsubsection{Overview} 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. @@ -284,8 +297,10 @@ 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 -\latexonly{$2\,\alpha$.}\latexignore{\emph{2 \alpha}.} +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. @@ -300,10 +315,10 @@ line. The detector length depends upon \latexonly{$\alpha$}\latexignore{\emph{alpha}} and the \emph{focal length}. This length, \latexonly{$d_l$,}\latexignore{Dl,} is calculated as -\latexonly{\begin{equation} d_l = 4\,f \tan (\alpha / 2)\end{equation}} -\latexignore{\\\centerline{\emph{4 x F x tan(\alpha/2)}}} +\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}\label{equilinearfig} +\begin{figure} \centerline{\image{10cm;0cm}{equilinear.eps}} \latexonly{\caption{\label{equilinearfig} Equilinear geometry}} \end{figure} @@ -318,7 +333,7 @@ accurate as filtered backprojection. This is due primarily 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 by backprojecting the filtered projections. Though these two steps are sequential, each view position can be processed independently. @@ -326,9 +341,18 @@ these two steps are sequential, each view position can be processed independentl \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 cluster of 16 computers 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} @@ -358,11 +382,11 @@ 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