-\chapter{ctsimtext}\label{ctsimtext}\index{ctsimtext}%
+\chapter{The Command Line Interface}\label{ctsimtext}\index{ctsimtext}%
\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
-\setfooter{\thepage}{}{}{}{}{\thepage}%
+\ctsimfooter%
-\ctsimtext\ is a master shell for all of the command-line utilities.
+\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...}.
+\usage \ctsimtext\ can be invoked via three different
+methods.
+\begin{itemize}\itemsep=0pt
+\item \ctsimtext\ can 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.
+
+\item \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\\ \texttt{ctsimtext function-name parameters...}.
+
+\item Using operating systems that support soft or hard linking of
+files (such as UNIX and Linux), the executable file \ctsimtext\ can
+be linked to the function names. This is automatically done by
+the installation file for Linux. Thus, to use \ctsimtext\ with the
+function name \texttt{pjrec}, the below command can be executed:\\
+\texttt{pjrec parameters...}
-The available functions are:
+\end{itemize}
\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
+ \item -\,-invert
+ \item -\,-log
+ \item -\,-exp
+ \item -\,-sqr
+ \item -\,-sqrt
\end{itemize}
\section{if2}\label{if2}\index{ctsimtext,if2}%
\usage
\begin{itemize}\itemsep=0pt
- \item --add
- \item --sub
- \item --mul
- \item --comp
- \item --column-plot
- \item --row-plot
+ \item -\,-add
+ \item -\,-sub
+ \item -\,-mul
+ \item -\,-comp
+ \item -\,-column-plot
+ \item -\,-row-plot
\end{itemize}
\section{ifexport}\label{ifexport}\index{ctsimtext,ifexport}%
\begin{itemize}\itemsep=0pt
\item --format
\begin{itemize}\itemsep=0pt
- \item --pgm
- \item --pgmasc
- \item --png
- \item --png16
+ \item -\,-pgm
+ \item -\,-pgmasc
+ \item -\,-png
+ \item -\,-png16
\end{itemize}
- \item --center
+ \item -\,-center
\begin{itemize}\itemsep=0pt
\item median
\item mode
\item mean
\end{itemize}
- \item --auto
+ \item -\,-auto
\begin{itemize}\itemsep=0pt
- \item --full
- \item --std0.1
- \item --std0.5
- \item --std1
- \item --std2
- \item --std3
+ \item -\,-full
+ \item -\,-std0.1
+ \item -\,-std0.5
+ \item -\,-std1
+ \item -\,-std2
+ \item -\,-std3
\end{itemize}
- \item --scale
- \item --min
- \item --max
+ \item -\,-scale
+ \item -\,-min
+ \item -\,-max
\end{itemize}
\section{ifinfo}\label{ifinfo}\index{ctsimtext,ifinfo}%
\usage
\begin{itemize}\itemsep=0pt
- \item --labels
- \item --no-labels
- \item --stats
- \item --no-stats
- \item --help
+ \item -\,-labels
+ \item -\,-no-labels
+ \item -\,-stats
+ \item -\,-no-stats
+ \item -\,-help
\end{itemize}
\section{phm2pj}\label{phm2pj}\index{ctsimtext,phm2pj}%
\usage
phm2pj projection-file-name number-of-detectors number-of-views [options...]
\begin{itemize}\itemsep=0pt
- \item --phantom
- Select a standard phantom
+ \item -\,-phantom
+ Select a standard phantom
\begin{itemize}\itemsep=0pt
\item herman
\item shepp-logan
\item unit-pulse
\end{itemize}
- \item --phmfile
+ \item -\,-phmfile
Load a phantom definition definition
- \item --geometry
+ \item -\,-geometry
\begin{itemize}\itemsep=0pt
\item parallel
\item equiangular
\item equilinear
\end{itemize}
- \item --nray
+ \item -\,-nray
Number of samples per each detector
- \item --rotangle
+ \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.
+a rotation angle of 1 and for equilinear and equiangular
+geometries use a rotation angle of 2. The default is to use to
+appropriate rotation angle based on the geometry.
+
+ \item -\,-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.
- \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 -\,-scan-ratio
+ Sets the length of scanning as a ratio of the view diameter.
+ For normal scanning, a value of 1.0 is fine.
- \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.
+ \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}.
\usage
\begin{itemize}\itemsep=0pt
- \item --nsamples
+ \item -\,-nsamples
+ \item -\,-view-ratio
\end{itemize}
\section{pj2if}\label{pj2if}\index{ctsimtext,pj2if}%
\usage
\begin{itemize}\itemsep=0pt
-\item --help Print brief online help
+\item -\,-help Print brief online help
\end{itemize}
\section{pjinfo}\label{pjinfo}\index{ctsimtext,pjinfo}%
\usage
\begin{itemize}\itemsep=0pt
- \item --binaryheader
- \item --binaryview
- \item --startview
- \item --endview
- \item --dump
+ \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.
+\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
+} \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.
+\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 rfftw
\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.
+
+\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{--interpolation}}{Interpolation technique. \texttt{linear} is optimal.
+
+\twocolitem{\textbf{-\,-interpolation}}{Interpolation technique.
+\texttt{linear} is optimal.
\begin{itemize}\itemsep=0pt
\item nearest
\item linear
+\item cubic
\end{itemize}
}
-\twocolitem{\textbf{-backprojection}}{Selects the backprojection technique. A setting of \texttt{idiff3} is optimal.
+
+\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 diff2
-\item idiff2
-\item idiff3
+\item idiff
\end{itemize}
}
-\twocolitem{\textbf{--zeropad}}{Zeropad factor. A setting of \texttt{1} is optimal.}
-\twocolitem{\textbf{--preinterpolate}}{Selects preinterpolation interpolation technique and sets the preinterpolation factor. Currently, this is experimental and does not work well.}
-\end{twocollist}
+\twocolitem{\textbf{-\,-zeropad}}{Zeropad factor. A setting of
+\texttt{1} is optimal.}
+\end{twocollist}