X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=doc%2Fctsim-textui.tex;h=c6fc11d4a3288fe0e29d37d6f121749bce814c08;hp=6a72fdace21e5c9dc21af74e2883155b1b396579;hb=82ea0c94394a5a175b260160760155a6686203a1;hpb=676f8753e1b3edd337240391855f34dde1af24fa diff --git a/doc/ctsim-textui.tex b/doc/ctsim-textui.tex index 6a72fda..c6fc11d 100644 --- a/doc/ctsim-textui.tex +++ b/doc/ctsim-textui.tex @@ -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}