\chapter{The Graphical User Interface}\label{ctsim}\index{ctsim}%
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
\setfooter{\thepage}{}{}{}{}{\thepage}%

\section{Overview}
\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
with Microsoft Windows, \urlref{GTK}{http://www.gtk.org}, and
\urlref{Motif}{http://www.openmotif.org} graphical environments.
This graphical includes all of the functionality of the
command-line interface \helprefn{\ctsimtext}{ctsimtext} as well as
great image processing and visualization features.

\ctsim\ can open projection files, image files, phantom files, and
plot files.

\usage \texttt{ctsim [files to open...]}

You can invoke \ctsim\ by itself on the command line, or include
on the command-line any number of files that you want \ctsim\ to
automatically open.

\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.

\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
create and edit these files.

\subsection{Image}
Image files are 2-dimensional files that store 4-byte floating
point values. Images files can be either real or complex valued.
Typically, all images are real except for images that have been
processed by Fourier transforms. As you might expect,
complex-valued images are twice the size of real-valued images
since both a real and imaginary component need to be store.

Images files can also store any number of text labels. \ctsim\ uses
these labels for storing history information regarding
the creation and modifications of images.

When complex-valued images are viewed on the screen, only the real
component is displayed.

\subsection{Projection}
Projection files are created from Phantom files during the
projection process. Numerous options are available for the
creation of the these files. The files are stored in a binary
format with cross-platform compatibility on little and big endian
architectures.

\subsection{Plot}
Plot files are created by \ctsim\ during analysis of image files.
They can be read and stored on the disk. They are stored as ASCII
files for easy cross-platform support.

\section{Phantom Menus}

\subsection{Properties}
Displays the properties of a phantom which includes:

\begin{itemize}\itemsep=0pt
\item Overall dimensions of a phantom
\item A list of all component phantom elements
\end{itemize}

\subsection{Rasterize Dialog}
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
to set are:

\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
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.}
\end{twocollist}

\subsection{Projection Dialog}
This creates a projection file from a phantom. The options
available when collecting projections are:

\begin{twocollist}
\twocolitem{\textbf{Geometry}}{
  \begin{itemize}\itemsep=0pt
    \item Parallel
    \item Equiangular
    \item Equilinear
  \end{itemize}}
\twocolitem{\textbf{Number of detectors}}{Sets the number of
detectors in the detector array.}

\twocolitem{\textbf{Number of views}}{Sets the number of views
collected}

\twocolitem{\textbf{Samples per detector}}{Sets the number of
samples collected for each detector}

\twocolitem{\textbf{View Ratio}}{Sets the field of view as a ratio
of the diameter of the phantom.  For normal scanning, a value of
1.0 is fine.}

\twocolitem{\textbf{Scan Ratio}}{Sets the length of scanning as a
ratio of the view diameter. For normal scanning, a value of 1.0 is
fine.}

\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.

For parallel geometries, a value of 1.0 is fine. For other
geometries, this should be at least 2.0 to avoid artifacts.}
\end{twocollist}

\subsection{Advanced Options}
\begin{twocollist}
\twocolitem{\textbf{Rotation Angle}}{Sets the rotation amount as a
multiple of pi. For parallel geometries use a rotation angle of 1
and for equilinear and equiangular geometries use a rotation angle
of 2. Using any other rotation angle will lead to artifacts.}
\end{twocollist}



\section{Image Menus}
\subsection{File - Properties}
Properties of image files include
\begin{itemize}\itemsep=0pt
  \item Whether the image is real or complex valued
  \item Numeric statistics
  \item Image file labels
\end{itemize}

\subsection{File - 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}


\subsection{View}\label{intensityscale}
These options are for change the intensity scale for viewing the image.
They do not change the image data.
\subsubsection{Set}
\subsubsection{Auto}
\subsubsection{Full}
This resets the intensity scale to the full scale of the image.

\subsection{Image}
These commands create a new image based upon the current image,
and for some commands, also a comparison image.

\subsubsection{Add, Subtract, Multiply, Divide}

\subsubsection{Image Size}

\subsubsection{3-D Conversion}
Generates a 3-dimensional view of the current phantom.

\subsection{Filter}
These commands filter and modify the image.

\subsubsection{Arithmetic}

\subsubsection{Frequency Based}

\subsection{Analyze}
These commands are used for analyzing an image.

\subsubsection{Plotting}

\subsubsection{Image Comparison}

\section{Projection Menus}

\subsection{File - Properties}

\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 FFT Polar Dialog}
The parameters for this option are the same as \helprefn{Convert
Polar Dialog}{convertpolardialog}. For this command, though, the
projections are Fourier transformed prior to conversion to polar
image.

\subsection{Reconstruct - Filtered Backprojection Dialog}
This dialog sets the parameters for reconstructing an image from projections
using the Filtered Backprojection technique. The parameters are identical
to those for the \helprefn{pjrec}{pjrec} program.

\section{Plot Menus}
\subsection{File - Properties}

\subsection{File - Save}
Plot files can be saved. They are saved in an ASCII text format.

\subsection{View Menu}
These commands set the scaling for the y-axis.
\subsubsection{Set}
\subsubsection{Auto}
\subsubsection{Full}
