\chapter{The Command Line Interface}\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 \texttt{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
\texttt{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 shepp-logan
    \item unit-pulse
  \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{\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{-\,-filter-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{linear} is optimal.
\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.

\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{-\,-zeropad}}{Zeropad factor. A setting of
\texttt{1} is optimal.}

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

\end{twocollist}
}
