X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=doc%2Fctsim-gui.tex;h=4bc989cc63603f05fa8f5351d914d36081e26c1b;hb=47601e0ab94ccdc360824178cf068a05bcbdb0eb;hp=7e0f6d4de0f01ade1dbfc1f9cb53aaad3c0aac72;hpb=befd71a7157339b52a0c40359518d5276b25d127;p=ctsim.git diff --git a/doc/ctsim-gui.tex b/doc/ctsim-gui.tex index 7e0f6d4..4bc989c 100644 --- a/doc/ctsim-gui.tex +++ b/doc/ctsim-gui.tex @@ -1,6 +1,7 @@ \chapter{The Graphical User Interface}\label{ctsim}\index{ctsim}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% +\setheader{{\it CHAPTER \thechapter}}{}{}{\ctsimheadtitle}{}{{\it CHAPTER \thechapter}}% +\ctsimfooter% + \section{Overview} \ctsim\ is the graphical shell for the CTSim project. It utilizes @@ -8,24 +9,20 @@ 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 +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} @@ -61,6 +58,50 @@ 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 for all of the windows of +\ctsim. + +\subsection{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{description}\itemsep=0pt +\item[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. + +\item[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{description} + +\subsection{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} +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...} +Allows the saving of the contents of a window to any filename. + +\subsection{Help} +This command displays the online help. + +\subsection{About} +This command shows the version number of \ctsim. + + \section{Phantom Menus} \subsection{Properties} @@ -92,43 +133,42 @@ This creates a projection file from a phantom. The options available when collecting projections are: \begin{twocollist} -\twocolitem{\textbf{Geometry}}{ +\twocolitem{\texttt{Geometry}}{ \begin{itemize}\itemsep=0pt \item Parallel \item Equiangular \item Equilinear \end{itemize}} -\twocolitem{\textbf{Number of detectors}}{Sets the number of +\twocolitem{\texttt{Number of detectors}}{Sets the number of detectors in the detector array.} -\twocolitem{\textbf{Number of views}}{Sets the number of views +\twocolitem{\texttt{Number of views}}{Sets the number of views collected} -\twocolitem{\textbf{Samples per detector}}{Sets the number of +\twocolitem{\texttt{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{\texttt{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{\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{\texttt{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{\textbf{Focal length ratio}}{Sets the distance of the +\twocolitem{\texttt{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} @@ -165,7 +205,28 @@ UNIX systems. 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{description}\itemsep=0pt +\item[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. + +\item[Width] This sets the half-width of the intensity scale. The width +is specified as a ratio of the standard deviation. +\end{description} + +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. @@ -174,29 +235,74 @@ 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} 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}. @@ -213,17 +319,101 @@ 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. +using the Filtered Backprojection technique. + + +\begin{twocollist} +\twocolitemruled{\textbf{Parameter}}{\textbf{Options}} +\twocolitem{\textbf{Filter}}{Selects which filter to apply to each +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 +\end{itemize} +} \twocolitem{\textbf{Hamming parameter}}{Sets the alpha level for +Hamming window. At setting of 0.54, this equals the Hanning +window.} + +\twocolitem{\textbf{Filter Method}}{Selects the filtering method. +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 +\end{itemize} +} + +\twocolitem{\textbf{Interpolation}}{Interpolation technique. +\texttt{cubic} is optimal when many projections are taken and the +data is smooth. Otherwise, \texttt{linear} gives better results. +Linear is also much faster than cubic interpolation. + +\begin{itemize}\itemsep=0pt +\item nearest +\item linear +\item cubic +\end{itemize} +} +\end{twocollist} + +\subsection{Advanced Options} + +These options are only visible if \emph{Advanced Options} has been +selected in the \texttt{File/Preferences} dialog. These parameters +default to optimal settings and don't need to be adjusted except +by expert users. + +\begin{twocollist} +\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 +\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. +\begin{itemize}\itemsep=0pt +\item direct +\item inverse-fourier +\end{itemize} +} + +\twocolitem{\textbf{Zeropad}}{Zeropad factor when using +frequency-based filtering. A setting of \texttt{1} is optimal.} + +\end{twocollist} \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.