X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=doc%2Fctsim-gui.tex;h=e76f4457169c4fa1642e8dd033378ae175f6bb24;hb=676f8753e1b3edd337240391855f34dde1af24fa;hp=8dbdb1d1862d88d680cdcf05fdc30c4faab75c81;hpb=00c1e9f08a38db0e14d146fbadb2daa0faa30278;p=ctsim.git diff --git a/doc/ctsim-gui.tex b/doc/ctsim-gui.tex index 8dbdb1d..e76f445 100644 --- a/doc/ctsim-gui.tex +++ b/doc/ctsim-gui.tex @@ -1,38 +1,30 @@ \chapter{The Graphical User Interface}\label{ctsim}\index{ctsim}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{\manver}{\thepage}% +\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 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. +automatically open. \ctsim\ can open projection files, image +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} @@ -62,6 +54,84 @@ 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{Global Menu Commands} +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. + +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. +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{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.} + +\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.} + +\end{twocollist} + +\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{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{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 - Contents} +This command displays the online help. + +\subsection{Help - About} +This command shows the version number of \ctsim. + + \section{Phantom Menus} \subsection{Properties} @@ -72,7 +142,7 @@ Displays the properties of a phantom which includes: \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 @@ -80,24 +150,24 @@ 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 +\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{\textbf{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{\textbf{Number of detectors}}{Sets the number of detectors in the detector array.} @@ -109,27 +179,26 @@ collected} 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.} +of the diameter of the phantom. For normal scanning, use a value of +\texttt{1.0}.} \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.} +ratio of the view diameter. For normal scanning, use a value of \texttt{1.0}.} \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.} +For parallel geometries, use a value of \texttt{1.0}. For other +geometries, this should be at least \texttt{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 +multiple of pi. For parallel geometries use a rotation angle of \texttt{1} and for equilinear and equiangular geometries use a rotation angle -of 2. Using any other rotation angle will lead to artifacts.} +of \texttt{2}. Using any other rotation angle will lead to artifacts.} \end{twocollist} @@ -143,30 +212,50 @@ Properties of image files include \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} These options are for change the intensity scale for viewing the image. They do not change the image data. \subsubsection{Set} +This command brings up a dialog box that allows you to set the lower +and upper intensities to display. + \subsubsection{Auto} +This command brings up a dialog box that allows \ctsim\ to automatically +make an intensity scale. The options that \ctsim\ needs to make this +automatic scale are: + +\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.} + +\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 +be \texttt{median - 0.5 x standard deviation} and the maximum will be +\texttt{median + 0.5 x standard deviation}. + \subsubsection{Full} This resets the intensity scale to the full scale of the image. @@ -175,36 +264,85 @@ These commands create a new image based upon the current image, and for some commands, also a comparison image. \subsubsection{Add, Subtract, Multiply, Divide} +These are simple arithmetic operations. \ctsim\ will display a dialog +box showing all of the currently opened image files that are the +same size of the active image. After selecting a compatible image, +\ctsim\ will perform the arithmetic operation on the two images and +make a new result image. \subsubsection{Image Size} +This command will generate a new window with the current image scaled to +any size. Currently, \texttt{bilinear} interpolation provides the best +image quality. \subsubsection{3-D Conversion} -Generates a 3-dimensional view of the current phantom. +Generates a 3-dimensional view of the current phantom. This view can be +rotated in three dimensions. The left and right arrow control the z-axis +rotation, the up and down arrows control the x-axis rotation. The y-axis +rotation is controlled by the \texttt{T} and \texttt{Y} keys. Other options +include: + +\begin{itemize} +\item Surface plot +\item Smooth shading +\item Lighting on or off +\item Color scale +\end{itemize} -\subsection{Filter} +\subsection{Filter}\index{Image filter} These commands filter and modify the image. \subsubsection{Arithmetic} +These are simple arithmetic functions that should be self explanatory. \subsubsection{Frequency Based} +This commands allow the Fourier and inverse Fourier transformations of +images. By default, the transformations will automatically convert +images from Fourier to natural order as expected. For example, \texttt{2-D FFT} +will transform the points into natural order after the Fourier transform. +Similarly the inverse, \texttt{2-D IFFT}, will reorder the points from +natural order to Fourier order before applying the inverse Fourier transformation. + +As you would expect, images that undergo frequency filtering will be complex-valued +images. Normally, only the real component is shown by \ctsim. However, \ctsim\ does +have options for converting a complex-valued image into a real-valued image via +the \texttt{Magnitude} and \texttt{Phase} filtering commands. \subsection{Analyze} These commands are used for analyzing an image. \subsubsection{Plotting} +The commands plot rows and columns of images. There are also commands +that perform FFT and IFFT transformations prior to plotting. \subsubsection{Image Comparison} +This command performs statistical comparisons between two images. An option +also exists for generating a difference image from the two input images. + +There are also commands for plotting rows and columns from two images on +a single plot. This is quite helpful when comparing a phantom to a reconstruction. \section{Projection Menus} \subsection{File - Properties} +The displayed properties include: + +\begin{itemize} +\item Number of detectors in the projections +\item Number of views +\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 @@ -212,7 +350,7 @@ Polar Dialog}{convertpolardialog}. For this command, though, the 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. @@ -224,9 +362,9 @@ projection. To properly reconstruct an image, this filter should 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 @@ -237,11 +375,11 @@ For large numbers of detectors, \texttt{rfftw} is optimal. For 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} } @@ -269,20 +407,20 @@ by expert users. \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} } @@ -293,12 +431,22 @@ frequency-based filtering. A setting of \texttt{1} is optimal.} \section{Plot Menus} \subsection{File - Properties} - -\subsection{File - Save} -Plot files can be saved. They are saved in an ASCII text format. +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. +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.