X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=doc%2Fctsim-textui.tex;fp=doc%2Fctsim-textui.tex;h=3826c49e980c5a268e9b810064c1de7cf690c79d;hb=103b084776d861a93e851ebff9c72798019b7561;hp=0000000000000000000000000000000000000000;hpb=0843d071f40ac9ee32773dabbd68c969bdf2d9ef;p=ctsim.git diff --git a/doc/ctsim-textui.tex b/doc/ctsim-textui.tex new file mode 100644 index 0000000..3826c49 --- /dev/null +++ b/doc/ctsim-textui.tex @@ -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}