r478: no message
[ctsim.git] / doc / ctsim-textui.tex
diff --git a/doc/ctsim-textui.tex b/doc/ctsim-textui.tex
new file mode 100644 (file)
index 0000000..3826c49
--- /dev/null
@@ -0,0 +1,210 @@
+\chapter{ctsimtext}\label{ctsimtext}\index{ctsimtext}%
+\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
+\setfooter{\thepage}{}{}{}{}{\thepage}%
+
+\ctsimtext is a master shell for all of the command-line utilities. 
+
+\usage
+\ctsimtext can be executed without any parameters. In that case, \ctsimtext
+offers a command-line to enter the function-names and their parameters. The output of the command is displayed. Further commands may be given to \ctsimtext. The shell is exited by the {\tt quit} command.
+
+\ctsimtext can also be called to execute a single command. This is especially useful for batch files containing multiple \ctsimtext commands. This is invoked by calling \par
+{\tt ctsimtext function-name parameters...}.
+
+The available functions are:
+
+\section{if1}\label{if1}\index{ctsimtext,if1}%
+Perfoms math functions on a single image.
+
+\usage
+\begin{itemize}\itemsep=0pt
+  \item --invert
+  \item --log
+  \item --exp
+  \item --sqr
+  \item --sqrt
+\end{itemize}
+
+\section{if2}\label{if2}\index{ctsimtext,if2}%
+Perfoms math functions on a two images.
+
+\usage
+\begin{itemize}\itemsep=0pt
+  \item --add
+  \item --sub
+  \item --mul
+  \item --comp
+  \item --column-plot
+  \item --row-plot
+\end{itemize}
+
+\section{ifexport}\label{ifexport}\index{ctsimtext,ifexport}%
+Export an imagefile to a standard graphics file.
+
+\usage
+\begin{itemize}\itemsep=0pt
+  \item --format
+  \begin{itemize}\itemsep=0pt
+    \item --pgm
+    \item --pgmasc
+    \item --png
+    \item --png16
+  \end{itemize}
+  \item --center
+  \begin{itemize}\itemsep=0pt
+    \item median
+    \item mode
+    \item mean
+  \end{itemize}
+  \item --auto
+  \begin{itemize}\itemsep=0pt
+     \item --full
+     \item --std0.1
+     \item --std0.5
+     \item --std1
+     \item --std2
+     \item --std3
+  \end{itemize}
+  \item --scale
+  \item --min
+  \item --max
+\end{itemize}
+
+\section{ifinfo}\label{ifinfo}\index{ctsimtext,ifinfo}%
+
+Displays information about an imagefile.
+
+\usage
+\begin{itemize}\itemsep=0pt
+  \item --labels
+  \item --no-labels
+  \item --stats
+  \item --no-stats
+  \item --help
+\end{itemize}
+
+\section{phm2pj}\label{phm2pj}\index{ctsimtext,phm2pj}%
+Simulates collection of X-rays data (projections) around a phantom object.
+
+\usage
+phm2pj projection-file-name number-of-detectors number-of-views [options...]
+\begin{itemize}\itemsep=0pt
+  \item --phantom
+  Select a standard phantom 
+  \begin{itemize}\itemsep=0pt
+    \item herman
+    \item herman-b
+    \item shepp-logan
+    \item shepp-logan-b
+  \end{itemize}
+
+  \item --phmfile
+  Load a phantom definition definition
+
+  \item --geometry
+  \begin{itemize}\itemsep=0pt
+    \item parallel
+    \item equiangular
+    \item equilinear
+  \end{itemize}
+
+  \item --nray
+    Number of samples per each detector
+
+  \item --rotangle
+    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.
+
+  \item --field-of-view
+    Sets the field of view as a ratio of the diameter of the phantom. For parallel geometries, using a value of 1.0 is fine. For other geometies, this should be at least 1.3 to avoid artifacts.
+
+  \item --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 1.0 is fine. For other geometries, this should be at least 2.0 to avoid artifacts.
+\end{itemize}
+
+The Herman phantom is taken with permission from Gabor Hermans 1980 book\cite{HERMAN80}. The Shepp-Logan phantom was published in 1974\cite{SHEPP74}.
+
+\section{phm2if}\label{phm2if}\index{ctsimtext,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.
+
+\usage
+\begin{itemize}\itemsep=0pt
+  \item --nsamples
+\end{itemize}
+
+\section{pj2if}\label{pj2if}\index{ctsimtext,pj2if}%
+Convert a projection file into an imagefile.
+
+\usage
+\begin{itemize}\itemsep=0pt
+\item --help    Print brief online help
+\end{itemize}
+
+\section{pjinfo}\label{pjinfo}\index{ctsimtext,pjinfo}%
+Displays information about a projection file.
+
+\usage
+\begin{itemize}\itemsep=0pt
+  \item --binaryheader
+  \item --binaryview
+  \item --startview
+  \item --endview
+  \item --dump
+\end{itemize}
+
+\section{pjrec}\label{pjrec}\index{ctsimtext,pjrec}%
+Reconstructs the interior of an object from a projection file.
+
+\usage
+\begin{twocollist}
+\twocolitemruled{{\bf Parameter}}{{\bf Options}}
+\twocolitem{{\bf --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{{\bf --filter-parameter}}{Sets the alpha level for Hamming
+  window. At setting of 0.54, this equals the Hanning window.}
+
+\twocolitem{{\bf --filter-method}}{Selects the filtering method. For large numbers of detectors, {\tt rfftw} is optimal. For smaller numbers of detectors, {\tt convolution} might be a bit faster. 
+\begin{itemize}\itemsep=0pt
+\item convolution
+\item fourier
+\item fourier\_table
+\item fftw
+\item rfftw
+\end{itemize}
+}
+
+\twocolitem{{\bf --filter-generation}}{Selects the filter generation. With convolution, {\tt direct} is the proper method to select. With any of the frequency methods, {\tt inverse-fourier} is the best method.
+\begin{itemize}\itemsep=0pt
+\item direct
+\item inverse-fourier
+\end{itemize}
+}
+\twocolitem{{\bf --interpolation}}{Interpolation technique. {\tt linear} is optimal.
+\begin{itemize}\itemsep=0pt
+\item nearest
+\item linear
+\end{itemize}
+}    
+  \twocolitem{{\bf -backprojection}}{Selects the backprojection technique. A setting of {\tt idiff3} is optimal.
+\begin{itemize}\itemsep=0pt
+\item trig
+\item table
+\item diff
+\item diff2
+\item idiff2
+\item idiff3
+\end{itemize}
+}
+\twocolitem{{\bf --zeropad}}{ Zeropad factor. A setting of {\tt 1} is optimal.}
+
+\twocolitem{{\bf --preinterpolate}}{Selects preinterpolation interpolation technique and sets the preinterpolation factor. Currently, this is experimental and does not work well.}
+\end{twocollist}