X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=doc%2Fctsim-concepts.tex;h=3f0dab0ff558207cc4a9411e5a90b35027811ea2;hb=e5c753200f28fdf5542a48051ad79c7c7dfbb299;hp=81dbf42b2da366baf1252f0b94369996c0d71fe4;hpb=eb4b8ecaf864329867c9d68c5911d2a2673d8a04;p=ctsim.git diff --git a/doc/ctsim-concepts.tex b/doc/ctsim-concepts.tex index 81dbf42..3f0dab0 100644 --- a/doc/ctsim-concepts.tex +++ b/doc/ctsim-concepts.tex @@ -1,14 +1,15 @@ \chapter{Concepts}\index{Concepts}% \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% +\ctsimfooter% \section{Overview}\label{conceptoverview}\index{Concepts,Overview}% -The operation of \ctsim\ begins with the phantom object. A phantom -object consists of geometric elements. A scanner is specified and the -projection data simulated. Finally that projection data can be -reconstructed using various user controlled algorithms producing an -image of the phantom object. This reconstruction can then be -statistically compared to the original phantom object. +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 +user-controlled algorithms producing an image of the phantom +object. This reconstruction can then be statistically 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 @@ -18,14 +19,15 @@ object, but the two objects we need to be concerned with are the \section{Phantoms}\label{conceptphantom}\index{Concepts,Phantoms}% \subsection{Overview}\label{phantomoverview}\index{Concepts,Phantoms,Overview}% -\ctsim\ uses geometrical objects to -describe the object being scanned. A phantom is composed a one or more -phantom elements. These elements are simple geometric shapes, -specifically, rectangles, triangles, ellipses, sectors and segments. -With these elements, standard phantoms used in the CT literature can -be constructed. In fact, \ctsim\ provides a shortcut to load the -published phantoms of Herman and Shepp-Logan. \ctsim\ also reads text -files of user-defined phantoms. +\ctsim\ uses geometrical objects to describe the object being +scanned. A phantom is composed a one or more phantom elements. +These elements are simple geometric shapes, specifically, +rectangles, triangles, ellipses, sectors and segments. With these +elements, standard phantoms used in the CT literature can be +constructed. In fact, \ctsim\ provides a shortcut to load the +published phantoms of Herman\cite{HERMAN80} and +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}. @@ -36,8 +38,8 @@ 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, one of -\rtfsp\texttt{rectangle}, \texttt{}, \texttt{triangle}, +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 meanings depending on the element type. @@ -112,41 +114,41 @@ variable is the diameter of the circle surround the phantom, or the \emph{phantom diameter}. Remember, as mentioned above, the phantom dimensions are also padded by 1\%. -The other important geometry variables for scanning objects are the -\emph{view ratio}, \emph{scan ratio}, and \emph{focal length ratio}. -These variables are all input into \ctsim\ in terms of ratios rather -than absolute values. +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 +ratios rather than absolute values. \subsubsection{Phantom Diameter} \begin{figure} $$\image{5cm;0cm}{scangeometry.eps}$$ -\caption{Phantom Geometry} +\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 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},} -\rtfsp is then -\latexignore{\\$$\emph{Pl x sqrt(2)}$$\\} -\latexonly{$$p_d = p_l \sqrt{2}$$} -CT scanners actually collect projections around a circle rather than a -square. The diameter of this circle is also the diameter of the boundary -square -\latexonly{$p_d$.}\latexignore{\rtfsp\emph{Pd}.} -These relationships are diagrammed in figure 2.1. +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 +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},} \rtfsp is then +\latexignore{\\$$\emph{Pl x sqrt(2)}$$\\} \latexonly{$$p_d = p_l +\sqrt{2}$$} CT scanners actually collect projections around a +circle rather than a square. The diameter of this circle is also +the diameter of the boundary square +\latexonly{$p_d$. These +relationships are diagrammed in figure~\ref{phantomgeomfig}.} +\latexignore{emph{Pd}.} \subsubsection{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 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 projections, \ctsim\ will -ask for a \emph{view ratio}, -\latexonly{$v_r$.}\latexignore{\rtfsp \emph{VR}.} -The \emph{view diameter} is then set as -\latexonly{$$v_d = p_d v_r$$}\latexignore{\\$$\emph{Vd = Pd x VR}$$} +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 +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 +projections, \ctsim\ will ask for a \emph{view ratio}, +\latexonly{$v_r$.}\latexignore{\rtfsp \emph{VR}.} The \emph{view +diameter} is then calculated as \latexonly{$$v_d = p_d +v_r$$}\latexignore{\\$$\emph{Vd = Pd x VR}$$} By using a \latexonly{$v_r$}\latexignore{\emph{VR}} @@ -158,17 +160,17 @@ be impossible and is analagous to inserting an object into the CT scanner that is larger than the scanner itself! \subsubsection{Scan Diameter} -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 born. The scan diameter -\latexonly{$s_d$}\latexignore{\emph{Sd}} -is the diameter over which x-rays are collected and is defined as -\latexonly{$$s_d = v_d s_r$$}\latexignore{\\$$\emph{Sd = Vd x SR}$$\\} -By default and for all ordinary scanning, the \emph{scan ratio} is to -\texttt{1}. If the \emph{scan ratio} is less than \texttt{1}, -you can expect significant artifacts. +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 +which x-rays are collected and is defined as \latexonly{$$s_d = +v_d s_r$$}\latexignore{\\$$\emph{Sd = Vd x SR}$$\\} By default and +for all ordinary scanning, the \emph{scan ratio} is to \texttt{1}. +If the \emph{scan ratio} is less than \texttt{1}, you can expect +significant artifacts. \subsubsection{Focal Length} The \emph{focal length}, @@ -180,9 +182,12 @@ of the view radius. Focal length is calculated as \latexonly{$$f = (v_d / 2) f_r$$}\latexignore{\\$$\emph{F = (Vd / 2) x FR}$$} -For parallel geometry scanning, the focal length doesn't matter. However, -divergent geometry scanning (equilinear and equiangular), the \emph{focal -length ratio} should be set at \texttt{2} or more to avoid artifacts. +For parallel geometry scanning, the focal length doesn't matter. +However, 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 +source inside of the \emph{view diameter}. \subsection{Parallel Geometry}\label{geometryparallel}\index{Concepts,Scanner,Geometries,Parallel} @@ -205,24 +210,26 @@ 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. -See figure 2.2. +\latexonly{See figure~\ref{divergentfig}.} \begin{figure} \image{10cm;0cm}{divergent.eps} -\caption{Equilinear and equiangular geometries.} +\caption{\label{divergentfig} Equilinear and equiangular geometries.} \end{figure} \subsubsection{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)}$$\\} -\latexonly{\begin{equation}\label{alphacalc}\alpha = 2 \sin^{-1} ((s_d / 2) / f)\end{equation}} -This is illustrated in figure 2.3. +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)}$$\\} +\latexonly{\begin{equation}\label{alphacalc}\alpha = 2 \sin^{-1} +((s_d / 2) / f)\end{equation} + This is illustrated in figure~\ref{alphacalcfig}.} \begin{figure} \image{10cm;0cm}{alphacalc.eps} -\caption{Calculation of $\alpha$} +\caption{\label{alphacalcfig} Calculation of $\alpha$} \end{figure} @@ -236,54 +243,55 @@ there are significant artifacts. The primary way to manage the To illustrate, the \emph{scan diameter} can be defined as \latexonly{$$s_d = s_r v_r p_d$$}\latexignore{\\$$Sd = Sr x Vr x Pd$$\\} -Further, $f$ can be defined as -\latexonly{$$f = f_r (v_r p_d / 2)$$} -Plugging these equations into -\latexignore{the above equation,}\latexonly{equation~\ref{alphacalc},} -We have, +Further, $f$ can be defined as \latexonly{$$f = f_r (v_r p_d / +2)$$}\latexignore{\\$$F = FR x (VR x Pd)$$\\} + +Substituting these equations into \latexignore{the above +equation,}\latexonly{equation~\ref{alphacalc},} We have, \latexonly{ \begin{eqnarray} \alpha &= 2\,\sin^{-1} \frac{s_r v_r p_d / 2}{f_r v_r (p_d / 2)} \nonumber \\ &= 2\,\sin^{-1} (s_r / f_r) \end{eqnarray} -} +} \latexignore{\\$$\alpha = 2 sin (Sr / Fr$$\\} -Since in normal scanning $s_r = 1$, $\alpha$ depends only upon the \emph{focal length ratio}. +Since in normal scanning $s_r$ = 1, $\alpha$ depends only upon the +\emph{focal length ratio}. \subsubsection{Detector Array Size} -In general, you do not need to be concerned with the detector array -size. It is automatically calculated by \ctsim. +In general, you do not need to be concerned with the detector +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 diameter. -For divergent beam geometrys, 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 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{$\alpha$.}\latexignore{\emph{alpha}.} -The dotted circle in +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 \begin{figure} \image{10cm;0cm}{equiangular.eps} -\caption{Equiangluar geometry} +\caption{\label{equiangularfig}Equiangular geometry} \end{figure} -figure 2.4 indicates the positions of the detectors in this case. +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 -\latexonly{$\alpha$}\latexignore{\emph{alpha}} -and the \emph{focal length}. It is calculated as -\latexonly{$$\mathrm{detLengh} = 4\,f \tan (\alpha / 2)$$} -\latexignore{\\$$\emph{detLength} = 4 x F x tan(alpha/2)$$\\} -\begin{figure} +\latexonly{$\alpha$}\latexignore{\emph{alpha}} and the \emph{focal +length}. It is calculated as \latexonly{$4\,f \tan (\alpha / 2)$} +\latexignore{\emph{4 x F x tan(\alpha/2)}} +\begin{figure}\label{equilinearfig} \image{10cm;0cm}{equilinear.eps} -\caption{Equilinear geometry} +\caption{\label{equilinearfig} Equilinear geometry} \end{figure} -An example of the this geometry is in figure 2.5. +\latexonly{This geometry is shown in figure~\ref{equilinearfig}.} \subsubsection{Examples of Geometry Settings} @@ -320,12 +328,29 @@ transform of the projection data and multiply that by the $|w|$ filter and then perform an inverse fourier transform. Though multiplying by $|w|$ gives the sharpest reconstructions, in -practice, superior results are obtained by mutiplying the $|w|$ filter -by another filter that attenuates the higher frequencies. \ctsim\ has +practice, superior results are obtained by reducing the higher +frequencies. This is performed by mutiplying the $|w|$ filter by +another filter that attenuates the higher frequencies. \ctsim\ has multiple filters for this purpose. \subsubsection{Backprojection of filtered projections} -Backprojection is the process of ``smearing'' the filtered projections -over the reconstructing image. Various levels of interpolation can be -specified. In general, the trade-off is between quality and execution -time. +Backprojection is the process of ``smearing'' the filtered +projections over the reconstructing image. Various levels of +interpolation can be specified. + +\section{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}. +$d$ is the standard error, $e$ is the maximum error, and +$r$ is the maximum error of a 2 by 2 pixel area. + +To compare two images, $A$ and $B$, each of which has $n$ columns and $m$ rows, +these values are calculated as below. + +\begin{equation} +d = \frac{\sum_{i=0}^{n}{\sum_{j=0}^{m}{(A_{ij} - B_{ij})^2}}}{m n} +\end{equation} +\begin{equation} +r = max(|A_{ij} - B{ij}|) +\end{equation}