r542: no message
[ctsim.git] / doc / ctsim-textui.tex
index 6a72fdace21e5c9dc21af74e2883155b1b396579..c6fc11d4a3288fe0e29d37d6f121749bce814c08 100644 (file)
@@ -5,8 +5,8 @@
 \ctsimtext\ is a master shell for all of the command-line utilities. The
 command-line utilities can perform most of the functions of the graphical
 shell. These command-line utilities are especially appropriate for use on
-systems without graphics, batch files, and parallel processing in a Beowulf
-computer cluster.
+systems without graphical capability, batch files, and parallel processing
+with a Beowulf-type computer cluster.
 
 \usage \ctsimtext\ can be invoked via three different
 methods.
@@ -17,7 +17,7 @@ their parameters. The output of the command is displayed. Further
 commands may be given to \ctsimtext. The shell is exited by the
 \texttt{quit} command. \ctsimtext\ uses the
 \urlref{readline}{http://www.gnu.org} library on UNIX and Linux platforms
-to provide for command history processing.
+to provide command history processing.
 
 \item \ctsimtext\ can also be called to
 execute a single command. This is especially useful for batch
@@ -48,49 +48,61 @@ a 16-CPU \urlref{Beowulf}{http://www.beowulf.org} cluster.
 
 
 \section{if1}\label{if1}\index{if1}%
-Performs math functions on a single image.
+Performs math functions on a single image. The commands works with
+both real and complex valued images.
 
 \usage
+\texttt{if1 input-filename output-filename [options...]}
+
+\textbf{Options}
 \begin{itemize}\itemsep=0pt
-  \item \doublehyphen{invert}
-  \item \doublehyphen{log}
-  \item \doublehyphen{exp}
-  \item \doublehyphen{sqr}
-  \item \doublehyphen{sqrt}
+  \item \doublehyphen{invert} - Negate pixel values
+  \item \doublehyphen{log} - Take natural logrithm of pixel values
+  \item \doublehyphen{exp} - Take natural exponent of pixel values
+  \item \doublehyphen{sqr} - Take square of pixel values
+  \item \doublehyphen{sqrt} - Take square root of pixel values
 \end{itemize}
 
 \section{if2}\label{if2}\index{if2}%
-Performs math functions on a two images.
+Performs math functions on a two images. The command works with both
+real and complex valued images.
 
 \usage
+\texttt{if2 input-filename1 input-filename2 output-filename [options...]}
+
+\textbf{Options}
 \begin{itemize}\itemsep=0pt
-  \item \doublehyphen{add}
-  \item \doublehyphen{sub}
-  \item \doublehyphen{mul}
-  \item \doublehyphen{comp}
-  \item \doublehyphen{column-plot}
-  \item \doublehyphen{row-plot}
+  \item \doublehyphen{add} - Add the two images
+  \item \doublehyphen{sub} - Subtract the two images
+  \item \doublehyphen{multiply} - Multiply the two images
+  \item \doublehyphen{divide} - Divide the two images
+  \item \doublehyphen{comp} - Statistically compare the two images
+  \item \doublehyphen{column-plot n} - Plot the values of a particular col
+  \item \doublehyphen{row-plot n} - Plot the values of a particular row
 \end{itemize}
 
 \section{ifexport}\label{ifexport}\index{ifexport}%
 Export an image file to a standard graphics file.
 
 \usage
+\texttt{ifexport input-filename output-filename -\,-format }\emph{graphic-format} \texttt{ [options...]}
+
+\textbf{Options}
 \begin{itemize}\itemsep=0pt
   \item \doublehyphen{format}
   \begin{itemize}\itemsep=0pt
-    \item \texttt{gm}
-    \item \texttt{pgmasc}
-    \item \texttt{png}
-    \item \texttt{png16}
+    \item \texttt{pgm} - Portable graymap format.
+    \item \texttt{pgmasc} - ASCII PGM format.
+    \item \texttt{png} - Portable network graphics format.
+    \item \texttt{png16} - 16-bit PNG format.
   \end{itemize}
-  \item \doublehyphen{center}
+  \item \doublehyphen{center} - Set center of intensity window.
   \begin{itemize}\itemsep=0pt
     \item \texttt{median}
     \item \texttt{mode}
     \item \texttt{mean}
   \end{itemize}
-  \item \doublehyphen{auto}
+  \item \doublehyphen{auto} - Set half-width of intensity window.
   \begin{itemize}\itemsep=0pt
      \item \texttt{full}
      \item \texttt{std0.1}
@@ -99,9 +111,10 @@ Export an image file to a standard graphics file.
      \item \texttt{std2}
      \item \texttt{std3}
   \end{itemize}
-  \item \doublehyphen{scale}
-  \item \doublehyphen{min}
-  \item \doublehyphen{max}
+  \item \doublehyphen{scale} - Set size of output image. A value of
+  \texttt{1} is default and creates an output image the same size as the input image.
+  \item \doublehyphen{min} - Set the minimum intensity value.
+  \item \doublehyphen{max} - Set the maximum intensity value.
 \end{itemize}
 
 \section{ifinfo}\label{ifinfo}\index{ifinfo}%
@@ -109,19 +122,21 @@ Export an image file to a standard graphics file.
 Displays information about an imagefile.
 
 \usage
+\texttt{ifinfo input-filename [options...]}
+
+\textbf{Options}
 \begin{itemize}\itemsep=0pt
-  \item \doublehyphen{labels}
-  \item \doublehyphen{no-labels}
-  \item \doublehyphen{stats}
-  \item \doublehyphen{no-stats}
-  \item \doublehyphen{help}
+  \item \doublehyphen{labels} - Display history labels.
+  \item \doublehyphen{no-labels} - Suppress history labels.
+  \item \doublehyphen{stats} - Display image statistics.
+  \item \doublehyphen{no-stats} - Suppress image statistics.
 \end{itemize}
 
 \section{phm2pj}\label{phm2pj}\index{phm2pj}%
 Simulates collection of X-rays data (projections) around a phantom object.
 
 \usage
-\texttt{phm2pj projection-file-name number-of-detectors number-of-views [options...]}
+\texttt{phm2pj projection-filename number-detectors number-views [options...]}
 
 \begin{twocollist}
 \twocolitem{\doublehyphen{phantom}}{Select a standard phantom.
@@ -131,9 +146,9 @@ Simulates collection of X-rays data (projections) around a phantom object.
 \item \texttt{unit-pulse}
 \end{itemize}
 }
-\twocolitem{\doublehyphen{phmfile}}{Load a phantom definition definition}
+\twocolitem{\doublehyphen{phmfile}}{Reads a user-created phantom file.}
 
-\twocolitem{\doublehyphen{geometry}}{
+\twocolitem{\doublehyphen{geometry}}{Sets the scanner geometry. Valid values are:
   \begin{itemize}\itemsep=0pt
     \item \texttt{parallel}
     \item \texttt{equiangular}
@@ -143,29 +158,31 @@ Simulates collection of X-rays data (projections) around a phantom object.
 
 \twocolitem{\doublehyphen{nray}}{ Number of samples per each detector}
 
-\twocolitem{\doublehyphen{rotangle}}{Sets the rotation amount as a multiple of pi.
+\twocolitem{\doublehyphen{rotangle}}{The rotation angle as a multiple of pi.
 For parallel geometries use a rotation angle of \texttt{1} and for equilinear and equiangular
 geometries use a rotation angle of \texttt{2}. The default is to use to
 appropriate rotation angle based on the geometry.}
 
 \twocolitem{\doublehyphen{view-ratio}}{Sets the field of view as a ratio of the diameter of the phantom.
-    For normal scanning, a default value of \texttt{1.0} is optimal.}
+    For normal scanning, the default value of \texttt{1.0} is optimal.}
 
 \twocolitem{\doublehyphen{scan-ratio}}{Sets the length of scanning as a ratio of the view diameter.
-    For normal scanning, a value of \texttt{1.0} is optimal.}
+    For normal scanning, the default value of \texttt{1.0} is optimal.}
 
-\twocolitem{\doublehyphen{focal-length}}{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 \texttt{1.0} is optimal. For other
+\twocolitem{\doublehyphen{focal-length}}{Sets the distance between the radiation source
+ and the center of the object as a ratio of the radius of the object.
+   For parallel geometries, a value of \texttt{1.0} is optimal. For other
     geometries, this should be at least \texttt{2.0} to avoid artifacts.}
 \end{twocollist}
 
 
 \section{phm2if}\label{phm2if}\index{phm2if}%
-Converts a geometric phantom object into an imagefile. The size of the
-imagefile in pixels must be specified as well as the number of samples
-to average per pixel.
+Converts a geometric phantom object into an imagefile.
 
 \usage
+\texttt{phm2if phantom-filename image-filename [options...]}
+
+\textbf{Options}
 \begin{twocollist}
   \twocolitem{\doublehyphen{nsamples}}{Number of samples in x \& y directions per pixel}
   \twocolitem{\doublehyphen{view-ratio}}{Sets the view ration. For normal scanning,
@@ -176,27 +193,40 @@ to average per pixel.
 Convert a projection file into an imagefile.
 
 \usage
-\texttt{pj2if projection-file-name image-file-name x-size ysize [options...]}
+\texttt{pj2if projection-filename image-filename x-size y-size [options...]}
 
+\textbf{Options}
 \begin{twocollist}
-\twocolitem{\doublehyphen{help}}{Print brief online help}
+\twocolitem{\doublehyphen{dump}}{Print all projection data to the console.}
 \end{twocollist}
 
 \section{pjinfo}\label{pjinfo}\index{pjinfo}%
 Displays information about a projection file.
 
 \usage
+\texttt{pjinfo projection-filename [options...]}
+
+\textbf{Options}
 \begin{itemize}\itemsep=0pt
-  \item \doublehyphen{binaryheader}
-  \item \doublehyphen{binaryview}
-  \item \doublehyphen{startview}
-  \item \doublehyphen{endview}
-  \item \doublehyphen{dump}
+  \item \doublehyphen{binaryheader} - Dump the binary header to the standard output.
+  This option is only used when manually creating a composite projection file from
+  several different projection files.
+  \item \doublehyphen{binaryview} - Dump binary view data to the standard output.
+  This option is only used when manually creating a composite projection file from
+  several different projection files.
+  \item \doublehyphen{startview} - Sets starting view to display. Default is \texttt{0}.
+  \item \doublehyphen{endview} - Sets ending view to display. Default is the last view.
+  \item \doublehyphen{dump} - Print all projection data to the console.
 \end{itemize}
 
 \section{pjrec}\label{pjrec}\index{pjrec}%
 Reconstructs the interior of an object from a projection file.
 
+\usage
+\texttt{pjrec projection-filename image-filename image-cols image-rows [options...]}
+
+\textbf{Options}
+
 \begin{twocollist}
 \twocolitemruled{\textbf{Parameter}}{\textbf{Options}}
 \twocolitem{\doublehyphen{filter}}{Selects which filter to apply to
@@ -218,45 +248,49 @@ For smaller numbers of detectors, \texttt{convolution} might be a
 bit faster.
 \begin{itemize}\itemsep=0pt
 \item \texttt{convolution}
-\item \texttt{fourier}
-\item \texttt{fourier-table}
-\item \texttt{fftw}
-\item \texttt{rfftw}
-\item fftw
-\item rfftw
+\item \texttt{fourier} - Uses simple Fourier transform.
+\item \texttt{fourier-table} - Optimizes Fourier transform by precalculating trigometric functions.
+\item \texttt{fftw} - Uses complex-valued Fourier transform with the \emph{fftw} library.
+\item \texttt{rfftw} - Uses optimized real/half-complex Fourier transform.
 \end{itemize}
 }
+\end{twocollist}
 
+\begin{twocollist}
 \twocolitem{\doublehyphen{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
+\item \texttt{direct}
+\item \texttt{inverse-fourier}
 \end{itemize}
 }
 
 \twocolitem{\doublehyphen{interpolation}}{Interpolation technique.
-\texttt{linear} is optimal.
+\texttt{cubic} is optimal when the
+data is smooth. Smooth data is obtained by taking many projections and/or
+using a smoothing filter. In the absence of smooth data, \texttt{linear} gives better results and
+is many times faster than cubic interpolation.
+
 \begin{itemize}\itemsep=0pt
-\item nearest
-\item linear
-\item cubic
+\item \texttt{nearest}
+\item \texttt{linear}
+\item \texttt{cubic}
 \end{itemize}
 }
 
 \twocolitem{\doublehyphen{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} - Use trigometric functions at each image point.
+\item \texttt{table} - Use precalculated trigometric tables.
+\item \texttt{diff} - Use difference method to iterate within image.
+\item \texttt{idiff} - Use integer iteration math.
 \end{itemize}
 }
 
 \twocolitem{\doublehyphen{zeropad}}{Zeropad factor. A setting of
-\texttt{1} is optimal.}
+\texttt{1} is optimal whereas a zeropad of \texttt{0} performs no zeropadding.}
 
 \end{twocollist}