85174f271950155e26a976850d9ef0809c0023ec
[ctsim.git] / doc / ctsim-textui.tex
1 \chapter{ctsimtext}\label{ctsimtext}\index{ctsimtext}%
2 \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
3 \setfooter{\thepage}{}{}{}{}{\thepage}%
4
5 \ctsimtext\ is a master shell for all of the command-line utilities. 
6
7 \usage
8 \ctsimtext\ can be executed without any parameters. In that case, \ctsimtext\ 
9 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.
10
11 \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
12 \texttt{ctsimtext function-name parameters...}.
13
14 The available functions are:
15
16 \section{if1}\label{if1}\index{ctsimtext,if1}%
17 Perfoms math functions on a single image.
18
19 \usage
20 \begin{itemize}\itemsep=0pt
21   \item --invert
22   \item --log
23   \item --exp
24   \item --sqr
25   \item --sqrt
26 \end{itemize}
27
28 \section{if2}\label{if2}\index{ctsimtext,if2}%
29 Perfoms math functions on a two images.
30
31 \usage
32 \begin{itemize}\itemsep=0pt
33   \item --add
34   \item --sub
35   \item --mul
36   \item --comp
37   \item --column-plot
38   \item --row-plot
39 \end{itemize}
40
41 \section{ifexport}\label{ifexport}\index{ctsimtext,ifexport}%
42 Export an imagefile to a standard graphics file.
43
44 \usage
45 \begin{itemize}\itemsep=0pt
46   \item --format
47   \begin{itemize}\itemsep=0pt
48     \item --pgm
49     \item --pgmasc
50     \item --png
51     \item --png16
52   \end{itemize}
53   \item --center
54   \begin{itemize}\itemsep=0pt
55     \item median
56     \item mode
57     \item mean
58   \end{itemize}
59   \item --auto
60   \begin{itemize}\itemsep=0pt
61      \item --full
62      \item --std0.1
63      \item --std0.5
64      \item --std1
65      \item --std2
66      \item --std3
67   \end{itemize}
68   \item --scale
69   \item --min
70   \item --max
71 \end{itemize}
72
73 \section{ifinfo}\label{ifinfo}\index{ctsimtext,ifinfo}%
74
75 Displays information about an imagefile.
76
77 \usage
78 \begin{itemize}\itemsep=0pt
79   \item --labels
80   \item --no-labels
81   \item --stats
82   \item --no-stats
83   \item --help
84 \end{itemize}
85
86 \section{phm2pj}\label{phm2pj}\index{ctsimtext,phm2pj}%
87 Simulates collection of X-rays data (projections) around a phantom object.
88
89 \usage
90 phm2pj projection-file-name number-of-detectors number-of-views [options...]
91 \begin{itemize}\itemsep=0pt
92   \item --phantom
93   Select a standard phantom 
94   \begin{itemize}\itemsep=0pt
95     \item herman
96     \item shepp-logan
97     \item unit-pulse
98   \end{itemize}
99
100   \item --phmfile
101   Load a phantom definition definition
102
103   \item --geometry
104   \begin{itemize}\itemsep=0pt
105     \item parallel
106     \item equiangular
107     \item equilinear
108   \end{itemize}
109
110   \item --nray
111     Number of samples per each detector
112
113   \item --rotangle
114     Sets the rotation amount as a multiple of pi. For parallel geometries use
115 a rotation angle of 1 and for equilinear and equiangular geometries use a rotation angle of 2.
116
117   \item --field-of-view
118     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.
119
120   \item --focal-length
121     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.
122 \end{itemize}
123
124 The Herman phantom is taken with permission from Gabor Hermans 1980 book\cite{HERMAN80}. The Shepp-Logan phantom was published in 1974\cite{SHEPP74}.
125
126 \section{phm2if}\label{phm2if}\index{ctsimtext,phm2if}%
127 Converts a geometric phantom object into an imagefile. The size of the
128 imagefile in pixels must be specified as well as the number of samples
129 to average per pixel.
130
131 \usage
132 \begin{itemize}\itemsep=0pt
133   \item --nsamples
134 \end{itemize}
135
136 \section{pj2if}\label{pj2if}\index{ctsimtext,pj2if}%
137 Convert a projection file into an imagefile.
138
139 \usage
140 \begin{itemize}\itemsep=0pt
141 \item --help    Print brief online help
142 \end{itemize}
143
144 \section{pjinfo}\label{pjinfo}\index{ctsimtext,pjinfo}%
145 Displays information about a projection file.
146
147 \usage
148 \begin{itemize}\itemsep=0pt
149   \item --binaryheader
150   \item --binaryview
151   \item --startview
152   \item --endview
153   \item --dump
154 \end{itemize}
155
156 \section{pjrec}\label{pjrec}\index{ctsimtext,pjrec}%
157 Reconstructs the interior of an object from a projection file.
158
159 \usage
160 \begin{twocollist}
161 \twocolitemruled{\textbf{Parameter}}{\textbf{Options}}
162 \twocolitem{\textbf{--filter}}{Selects which filter to apply to each projection. To properly reconstruct an image, this filter should be multiplied 
163 by the absolute value of distance from zero frequency.
164 \begin{itemize}\itemsep=0pt
165 \item abs\_bandlimit
166 \item abs\_cosine
167 \item abs\_hamming
168 \end{itemize}
169 }
170 \twocolitem{\textbf{\-\-filter-parameter}}{Sets the alpha level for Hamming
171   window. At setting of 0.54, this equals the Hanning window.}
172
173 \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. 
174 \begin{itemize}\itemsep=0pt
175 \item convolution
176 \item fourier
177 \item fourier\_table
178 \item fftw
179 \item rfftw
180 \end{itemize}
181 }
182 \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.
183 \begin{itemize}\itemsep=0pt
184 \item direct
185 \item inverse-fourier
186 \end{itemize}
187 }
188 \twocolitem{\textbf{--interpolation}}{Interpolation technique. \texttt{linear} is optimal.
189 \begin{itemize}\itemsep=0pt
190 \item nearest
191 \item linear
192 \end{itemize}
193 }
194 \twocolitem{\textbf{-backprojection}}{Selects the backprojection technique. A setting of \texttt{idiff3} is optimal.
195 \begin{itemize}\itemsep=0pt
196 \item trig
197 \item table
198 \item diff
199 \item diff2
200 \item idiff2
201 \item idiff3
202 \end{itemize}
203 }
204 \twocolitem{\textbf{--zeropad}}{Zeropad factor. A setting of \texttt{1} is optimal.}
205
206 \twocolitem{\textbf{--preinterpolate}}{Selects preinterpolation interpolation technique and sets the preinterpolation factor. Currently, this is experimental and does not work well.}
207 \end{twocollist}
208