\chapter{The Graphical User Interface}\label{ctsim}\index{ctsim}%
-\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
+\setheader{{\it CHAPTER \thechapter}}{}{}{\ctsimheadtitle}{}{{\it CHAPTER \thechapter}}%
\ctsimfooter%
-\section{Overview}
+\section{Overview}\index{Graphical shell}
\ctsim\ is the graphical shell for the CTSim project. It utilizes
using the \urlref{wxWindows}{http://www.wxwindows.org} library for
cross-platform compatibility. The graphical shell is compatible
files, phantom files, and plot files.
-\section{File Types Support}
-
-Phantom and plot files are stored as ASCII text. In contrast,
-image and projection files are stored in binary format.
-\ctsim\ incorporates logic so that binary files are cross-platform
-compatible between both little and big endian architectures.
+\section{File Types}\index{File types}
\subsection{Phantom}
Besides loading phantom files from the disk, the Herman and
Shepp-Logan phantoms are built-in to \ctsim. Phantom files can be
-read and stored on the disk. However, a text editor is required to
+read and stored on the disk. Phantom files are stored in a simple
+ASCII format. A text editor is required to
create and edit these files.
\subsection{Image}
files for easy cross-platform support.
\section{Global Menu Commands}
-These commands are present on the menus for all of the windows of
-\ctsim.
+These commands are present on the menus of all windows.
+
+\subsection{File - Create Phantom}\index{Create phantom dialog}
+This command brings up a dialog box showing the phantoms that are preprogrammed
+into \ctsim. After selecting one of these phantoms, the new window with that
+phantom will be generated. The preprogrammed phantoms are:
+
+\begin{twocollist}
+\twocolitem{\textbf{Herman}}{The Herman head phantom\cite{HERMAN80}}
+\twocolitem{\textbf{Shepp-Logan}}{The head phantom of Shepp \& Logan\cite{SHEPP74}}
+\twocolitem{\textbf{Unit pulse}}{A phantom that has a value of \texttt{1} for the
+center of the phantom and \texttt{0} everywhere else.}
+\end{twocollist}
+
+\subsection{File - Create Filter}\index{Create filter dialog}
+This command brings up a dialog box showing the pre-programmed filters
+of \ctsim. This command will create a 2-dimensional image of the selected filter.
+The center of the filter is at the center of the image.
-\subsection{Preferences...}
+These filters can be created in their natural frequency domain or in their spatial domain.
+\begin{twocollist}
+\twocolitem{\textbf{Filter}}{Selects the filter to generate.}
+\twocolitem{\textbf{Domain}}{Selects either the \texttt{Frequency} or \texttt{Spatial} domains. The filters have the
+frequency domain as their natural domain.}
+\twocolitem{\textbf{X Size}}{Number of columns in the output image.}
+\twocolitem{\textbf{Y Size}}{Number of rows in the output image.}
+\twocolitem{\textbf{Hamming Parameter}}{Sets the parameter for the Hamming filter.}
+\twocolitem{\textbf{Bandwidth}}{Sets the bandwidth of the filter.}
+\twocolitem{\textbf{Axis (input) Scale}}{Sets the scale for the filter input. By default, the input to the filter is
+the distance in pixels from the center of the image. By changing this value, one can set a scale the input to the filter.}
+\twocolitem{\textbf{Filter (output) Scale)}}{Multiplies the output of the filter by this amount. By default, the filter has a maximum
+value of \texttt{1}.}
+\end{twocollist}
+
+\subsection{File - Preferences}\index{Preferences}
This command displays a dialog box that allows users to control
-the behavior of \ctsim. These options are saved across \ctsim sessions.
+the behavior of \ctsim. These options are saved across \ctsim\ sessions.
Under Microsoft Windows environments, they are stored in the registry.
On UNIX and Linux environments, they are stored in the users home
directory with the filename of \texttt{.ctsim}.
-\begin{description}\itemsep=0pt
-\item[Advanced options] By default, this is turned off in new installations.
+\begin{twocollist}
+\twocolitem{\textbf{Advanced options}}{By default, this is turned off in new installations.
These advanced options are required for normal simulations. When \texttt{Advanced
Options} is set, \ctsim\ will display more options during scanning of programs and
-the reconstruction of projections.
+the reconstruction of projections.}
-\item[Ask before deleting new documents] By default, this is turned on in
+\twocolitem{\textbf{Ask before deleting new documents}}{By default, this is turned on in
new installations. With this option set, \ctsim\ will ask before closing
documents that have been modified or never saved on disk. By turning off
this option, \ctsim\ will never ask if you want to save a file -- you'll
-be responsible for saving any files that you create.
+be responsible for saving any files that you create.}
-\end{description}
+\end{twocollist}
-\subsection{Open...}
+\subsection{File - Open}
This command opens a file section dialog box. Of special consideration
is the \texttt{File Type} combo box on the bottom of the dialog. You need
to select that to the type of file that you wish to open.
-\subsection{Save}
+\subsection{File - Save}
This command saves the contents of the active window. If the window hasn't
been named, a dialog box will open asking for the file name to use.
-\subsection{Save As...}
+\subsection{File - Close}
+As one would expect, this closes the active window.
+
+\subsection{File - Save As}
Allows the saving of the contents of a window to any filename.
-\subsection{Help}
+\subsection{Help - Contents}
This command displays the online help.
-\subsection{About}
+\subsection{Help - About}
This command shows the version number of \ctsim.
\item A list of all component phantom elements
\end{itemize}
-\subsection{Rasterize Dialog}
+\subsection{Rasterize Dialog}\index{Rasterize}
This creates an image file from a phantom. Technically, it
converts the phantom from a vector (infinite resolution) object
into a 2-dimension array of floating-point pixels. The parameters
\begin{twocollist}
\twocolitemruled{\textbf{Parameter}}{\textbf{Options}}
-\twocolitem{\texttt{X size}}{Number of columns in image file}
-\twocolitem{\texttt{Y size}}{Number of rows in image file}
-\twocolitem{\texttt{Samples per pixel}}{Numbers of samples taken
+\twocolitem{\textbf{X size}}{Number of columns in image file}
+\twocolitem{\textbf{Y size}}{Number of rows in image file}
+\twocolitem{\textbf{Samples per pixel}}{Numbers of samples taken
per pixel in both the x and y directions. For example, if the
\texttt{Samples per pixel} is set to \texttt{3}, then for every
-pixel in the image file 9 samples (3 x 3) are averaged.}
+pixel in the image file 9 samples ($3\times3$) are averaged.}
\end{twocollist}
-\subsection{Projection Dialog}
+\subsection{Projection Dialog}\index{Projection collection}
This creates a projection file from a phantom. The options
available when collecting projections are:
\begin{twocollist}
-\twocolitem{\texttt{Geometry}}{
+\twocolitem{\textbf{Geometry}}{Selects the scanner geometry.
\begin{itemize}\itemsep=0pt
- \item Parallel
- \item Equiangular
- \item Equilinear
+ \item \texttt{Parallel}
+ \item \texttt{Equiangular}
+ \item \texttt{Equilinear}
\end{itemize}}
-\twocolitem{\texttt{Number of detectors}}{Sets the number of
+\twocolitem{\textbf{Number of detectors}}{Sets the number of
detectors in the detector array.}
-\twocolitem{\texttt{Number of views}}{Sets the number of views
+\twocolitem{\textbf{Number of views}}{Sets the number of views
collected}
-\twocolitem{\texttt{Samples per detector}}{Sets the number of
+\twocolitem{\textbf{Samples per detector}}{Sets the number of
samples collected for each detector}
-\twocolitem{\texttt{View Ratio}}{Sets the field of view as a ratio
+\twocolitem{\textbf{View Ratio}}{Sets the field of view as a ratio
of the diameter of the phantom. For normal scanning, use a value of
\texttt{1.0}.}
-\twocolitem{\texttt{Scan Ratio}}{Sets the length of scanning as a
+\twocolitem{\textbf{Scan Ratio}}{Sets the length of scanning as a
ratio of the view diameter. For normal scanning, use a value of \texttt{1.0}.}
-\twocolitem{\texttt{Focal length ratio}}{Sets the distance of the
+\twocolitem{\textbf{Focal length ratio}}{Sets the distance of the
radiation source and detectors from the center of the object as a
ratio of the radius of the object.
\item Image file labels
\end{itemize}
-\subsection{File - Export}
+\subsection{File - Export}\index{Image export}
This command allows for exporting image files to a standard
graphics file format. This is helpful when you want to take an
image and import it into another application. The current
\helprefn{intensity scale}{intensityscale} is used when exporting
the file. The support file formats are:
-\begin{description}\itemsep=0pt
-\item[PNG]Portable Network Graphics format. This uses 8-bits or
-256 shades of gray.
-
-\item[PNG-16]This is a 16-bit version of PNG which allows for
-65536 shades of gray.
-\item[PGM]Portable Graymap format. This is a common format used on
-UNIX systems.
-\item[PGM]ASCII version of PGM.
-\end{description}
+\begin{twocollist}
+\twocolitem{\textbf{PNG}}{Portable Network Graphics format. This uses 8-bits or
+256 shades of gray.}
+\twocolitem{\textbf{PNG-16}}{This is a 16-bit version of PNG which allows for
+65536 shades of gray.}
+\twocolitem{\textbf{PGM}}{Portable Graymap format. This is a common format used on
+UNIX systems.}
+\twocolitem{\textbf{PGM}}{ASCII version of PGM.}
+\end{twocollist}
\subsection{View}\label{intensityscale}
make an intensity scale. The options that \ctsim\ needs to make this
automatic scale are:
-\begin{description}\itemsep=0pt
-\item[Center] This sets the center of the intensity scale. Currently,
+\begin{twocollist}
+\twocolitem{\textbf{Center}}{This sets the center of the intensity scale. Currently,
\ctsim\ allows you to use either the mean, mode, or median of the image
-as the center of the intensity scale.
+as the center of the intensity scale.}
-\item[Width] This sets the half-width of the intensity scale. The width
-is specified as a ratio of the standard deviation.
-\end{description}
+\twocolitem{\textbf{Width}}{This sets the half-width of the intensity scale. The width
+is specified as a ratio of the standard deviation.}
+\end{twocollist}
As an example, if \texttt{median} is selected as the center and
\texttt{0.5} is selected as the width, the the minimum intensity will
\item Color scale
\end{itemize}
-\subsection{Filter}
+\subsection{Filter}\index{Image filter}
These commands filter and modify the image.
\subsubsection{Arithmetic}
\item The variables used when generating the projections from the phantom
\end{itemize}
-\subsection{Process - Convert Polar Dialog}\label{convertpolardialog}
-The parameters are \texttt{xsize}, \texttt{ysize}, and \texttt{interpolation}.
-The \texttt{xsize} and \texttt{ysize} parameters set the size of the
-resulting image file. The \texttt{interpolation} parameter selects the
-interpolation method. Currently, the \texttt{bilinear} option provides
-the highest quality interpolation.
+\subsection{Process - Convert Polar Dialog}\label{convertpolardialog}\index{Polar conversion}
+Creates an image file with the polar conversion of the projection data. The options to set are:
+
+\begin{twocollist}
+\twocolitem{\textbf{xsize}}{Number of columns in output image.}
+\twocolitem{\textbf{ysize}}{Number of rows in output image.}
+\twocolitem{\textbf{interpolation}}{Selects the interpolation method.
+Currently, the \texttt{bilinear} option provides the highest
+quality interpolation.}
+\end{twocollist}
\subsection{Process - Convert FFT Polar Dialog}
The parameters for this option are the same as \helprefn{Convert
projections are Fourier transformed prior to conversion to polar
image.
-\subsection{Reconstruct - Filtered Backprojection Dialog}
+\subsection{Reconstruct - Filtered Backprojection Dialog}\index{Reconstruction dialog}
This dialog sets the parameters for reconstructing an image from projections
using the Filtered Backprojection technique.
be multiplied by the absolute value of distance from zero
frequency.
\begin{itemize}\itemsep=0pt
-\item abs\_bandlimit
-\item abs\_cosine
-\item abs\_hamming
+\item \texttt{abs\_bandlimit}
+\item \texttt{abs\_cosine}
+\item \texttt{abs\_hamming}
\end{itemize}
} \twocolitem{\textbf{Hamming parameter}}{Sets the alpha level for
Hamming window. At setting of 0.54, this equals the Hanning
smaller numbers of detectors, \texttt{convolution} might be a bit
faster.
\begin{itemize}\itemsep=0pt
-\item convolution
-\item fourier
-\item fourier\_table
-\item fftw
-\item rfftw
+\item \texttt{convolution}
+\item \texttt{fourier}
+\item \texttt{fourier-table}
+\item \texttt{fftw}
+\item \texttt{rfftw}
\end{itemize}
}
\twocolitem{\textbf{Backprojection}}{Selects the backprojection
technique. A setting of \texttt{idiff} is optimal.
\begin{itemize}\itemsep=0pt
-\item trig
-\item table
-\item diff
-\item idiff
+\item \texttt{trig} - Uses trigometric functions at each image point
+\item \texttt{table} - Uses precalculated trigometric tables
+\item \texttt{diff} - Uses difference method to step along image
+\item \texttt{idiff} - Uses integer difference method
\end{itemize}
}
\twocolitem{\textbf{Filter Generation}}{Selects the filter
generation. With convolution, \texttt{direct} is the proper method
to select. With any of the frequency methods,
-\texttt{inverse-fourier}is the best method.
+\texttt{inverse-fourier} is the best method.
\begin{itemize}\itemsep=0pt
-\item direct
-\item inverse-fourier
+\item \texttt{direct}
+\item \texttt{inverse-fourier}
\end{itemize}
}
\section{Plot Menus}
\subsection{File - Properties}
-The displayed properties include
+The displayed properties include the number of curves in the plot
+and the number of points per curve. Additionally, the EZPlot
+commands used to format the plot are displayed.
\subsection{View Menu}
These commands set the scaling for the y-axis. They are analogous
to the options used for setting the intensity scale for images.
+
\subsubsection{Set}
+This command sets the upper and lower limits for the y-axis.
+
\subsubsection{Auto}
+This command automatically sets the upper and lower limits for the
+y-axis. Please refer to the \texttt{View - Auto} documentation for
+image files for the details.
+
\subsubsection{Full}
+The command resets the upper and lower limits of the y-axis to the
+minimum and maximum values of the curves.