0dc9eab08c1d03ba38795d65708999bc8ed77e65
[ctsim.git] / doc / tex2rtf / ctsim.tex
1 \documentclass[11pt]{report}%
2 %\input{psbox.tex}
3 \usepackage{texhelp}
4 \usepackage{fancyheadings}
5 \usepackage{mysober}
6 \usepackage{mytitle}
7 \usepackage{verbatim}
8 \usepackage{makeidx}
9 \usepackage{times}
10 \usepackage{hyperref}
11
12 \newcommand{\ctsim}{{\tt CTSim}}
13 \newcommand{\ctsimtext}{{\tt CTSimText}}
14 \newcommand{\usage}{{\bf Usage}{\par}}
15
16 \newcommand{\commandref}[2]{\helpref{{\tt $\backslash$#1}}{#2}}%
17 \newcommand{\commandrefn}[2]{\helprefn{{\tt $\backslash$#1}}{#2}\index{#1}}%
18 \newcommand{\commandpageref}[2]{\latexignore{\helprefn{{\tt $\backslash$#1}}{#2}}\latexonly{{\tt $\backslash$#1} {\it page \pageref{#2}}}\index{#1}}%
19 \newcommand{\indexit}[1]{#1\index{#1}}%
20 \newcommand{\inioption}[1]{{\bf {\tt #1}}\index{#1}}%
21 \parskip=10pt%
22 \parindent=0pt%
23 %\backgroundcolour{255;255;255}\textcolour{0;0;0}% Has an effect in HTML only
24 \winhelpignore{\title{Manual for CTSim 3.0}%
25 \author{Kevin Rosenberg, M.D.}%
26 \date{January 2001}%
27 }%
28 \winhelponly{\title{Manual for CTSim 3.0}%
29 \author{by Kevin Rosenberg, M.D.\\$$\image{3cm;3cm}{logo-huge.bmp}$$}%
30 }%
31 \makeindex%
32 \begin{document}%
33 \maketitle%
34 \pagestyle{fancyplain}%
35 \bibliographystyle{plain}%
36 \pagenumbering{roman}%
37
38 \setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}}%
39 \setfooter{\thepage}{}{}{}{}{\thepage}%
40 \tableofcontents%
41
42 \chapter*{Copyright notice}%
43 \setheader{{\it COPYRIGHT}}{}{}{}{}{{\it COPYRIGHT}}%
44 \setfooter{\thepage}{}{}{}{}{\thepage}%
45
46 Copyright (c) 1983-2001 Kevin Rosenberg, M.D.
47
48 Permission to use, copy, modify, and distribute this software and its
49 documentation for any purpose is hereby granted without fee, provided that the
50 above copyright notice, author statement and this permission notice appear in
51 all copies of this software and related documentation.
52
53 THE SOFTWARE IS PROVIDED ``AS-IS'' AND WITHOUT WARRANTY OF ANY KIND, EXPRESS,
54 IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
55 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
56
57 IN NO EVENT SHALL KEVIN ROSENBERG BE LIABLE FOR ANY
58 SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR
59 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
60 WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY
61 OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
62 PERFORMANCE OF THIS SOFTWARE.
63
64 \chapter{Introduction}\label{introduction}%
65 \pagenumbering{arabic}%
66 \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
67 \setfooter{\thepage}{}{}{}{}{\thepage}%
68
69 \winhelponly{$$\image{3cm;3cm}{logo-huge}$$}%
70 \htmlonly{$$\image{3cm;3cm}{logo-huge.gif}$$}%
71 Computed Tomography is a technique for estimating the interior of an object 
72 from measurement of radiation collected around the object. This radiation 
73 can be either projected through or emitted from the object.
74 \rtfsp\ctsim simulates the process of projecting X-rays through a phantom object.
75 \rtfsp\ctsim can then reconstruct the interior of the object from the projections
76 collected around the phantom object.
77
78 The \ctsim package has two executable files: the graphical \helprefn{ctsim}{ctsim} and text \helprefn{ctsimtext}{ctsimtext} programs.
79
80 \chapter{Installation}\index{Installation}%
81 \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
82 \setfooter{\thepage}{}{}{}{}{\thepage}%
83
84 \section{Download}\label{download}\index{Installation,Download}%
85
86 The latest version of CTSim, plus source code, can be accessed from:
87
88 \begin{verbatim}
89 http://www.ctsim.org
90 ftp://ftp.ctsim.org
91 \end{verbatim}
92
93 It is available in Windows 95/NT/2000 and Linux GUI versions and non-GUI versions.
94
95 \section{Installing Linux RPM}\index{Installation,Linux}%
96
97 \section{Installing Windows Binary}\index{Installation,Windows}%
98
99 \section{Build From Sources}\label{build}\index{Installation,Build}%
100
101 See the INSTALL file included in the source distribution for instructions.
102
103 \section{Web Requirements}\label{installreq}\index{Installation,Requirements}%
104   \begin{itemize}\itemsep=0pt
105   \item zlib Library (optional)
106         \par Used for PNG file export.
107
108   \item libpng Library (optional)
109         \par Used for PNG file export.
110         \par www.libpng.org
111
112   \item FFTW library (optional)
113         \par Used for frequency-based filtering and fourier transformations of images.
114         \par www.fftw.org
115
116   \item readline library (optional)
117         \par Used for \ctsimtext interactive shell.
118
119   \item dmalloc library (optional)
120         \par Used for debugging memory allocation
121         \par www.dmalloc.com
122
123   \item wxWindows library (optional) 
124   \par Used for platform-independent graphical interface. The graphical-shell
125   program \ctsim requires this library.  
126   \par www.wxwindows.org
127 \end{itemize}
128
129 \chapter{ctsim - the Graphical User Interface}\label{ctsim}\index{ctsim}% 
130 \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
131 \setfooter{\thepage}{}{}{}{}{\thepage}%
132
133 \ctsim is the graphical shell for the CTSim project. It is
134 written using the wxLibrary for cross-platform compatibility with GTK,
135 Motif, and Microsoft Windows. It includes all of the functionality of
136 the command-line tool {\tt ctsimtext} as well as image processing and visualization features.
137
138 \ctsim can open projection files, image files, phantom definition files, and plotfiles.
139
140 \usage
141 ctsim [OPTIONS] [files to open...]
142
143 \chapter{ctsimtext}\label{ctsimtext}\index{ctsimtext}%
144 \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
145 \setfooter{\thepage}{}{}{}{}{\thepage}%
146
147 \ctsimtext is a master shell for all of the command-line utilities. 
148
149 \usage
150 \ctsimtext can be executed without any parameters. In that case, \ctsimtext
151 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.
152
153 \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
154 {\tt ctsimtext function-name parameters...}.
155
156 The available functions are:
157
158 \section{if1}\label{if1}\index{ctsimtext,if1}%
159 Perfoms math functions on a single image.
160
161 \usage
162 \begin{itemize}\itemsep=0pt
163   \item --invert
164   \item --log
165   \item --exp
166   \item --sqr
167   \item --sqrt
168 \end{itemize}
169
170 \section{if2}\label{if2}\index{ctsimtext,if2}%
171 Perfoms math functions on a two images.
172
173 \usage
174 \begin{itemize}\itemsep=0pt
175   \item --add
176   \item --sub
177   \item --mul
178   \item --comp
179   \item --column-plot
180   \item --row-plot
181 \end{itemize}
182
183 \section{ifexport}\label{ifexport}\index{ctsimtext,ifexport}%
184 Export an imagefile to a standard graphics file.
185
186 \usage
187 \begin{itemize}\itemsep=0pt
188   \item --format
189   \begin{itemize}\itemsep=0pt
190     \item --pgm
191     \item --pgmasc
192     \item --png
193     \item --png16
194   \end{itemize}
195   \item --center
196   \begin{itemize}\itemsep=0pt
197     \item median
198     \item mode
199     \item mean
200   \end{itemize}
201   \item --auto
202   \begin{itemize}\itemsep=0pt
203      \item --full
204      \item --std0.1
205      \item --std0.5
206      \item --std1
207      \item --std2
208      \item --std3
209   \end{itemize}
210   \item --scale
211   \item --min
212   \item --max
213 \end{itemize}
214
215 \section{ifinfo}\label{ifinfo}\index{ctsimtext,ifinfo}%
216
217 Displays information about an imagefile.
218
219 \usage
220 \begin{itemize}\itemsep=0pt
221   \item --labels
222   \item --no-labels
223   \item --stats
224   \item --no-stats
225   \item --help
226 \end{itemize}
227
228 \section{phm2pj}\label{phm2pj}\index{ctsimtext,phm2pj}%
229 Simulates collection of X-rays data (projections) around a phantom object.
230
231 \usage
232 phm2pj projection-file-name number-of-detectors number-of-views [options...]
233 \begin{itemize}\itemsep=0pt
234   \item --phantom
235   Select a standard phantom 
236   \begin{itemize}\itemsep=0pt
237     \item herman
238     \item herman-b
239     \item shepp-logan
240     \item shepp-logan-b
241   \end{itemize}
242
243   \item --phmfile
244   Load a phantom definition definition
245
246   \item --geometry
247   \begin{itemize}\itemsep=0pt
248     \item parallel
249     \item equiangular
250     \item equilinear
251   \end{itemize}
252
253   \item --nray
254     Number of samples per each detector
255
256   \item --rotangle
257     Sets the rotation amount as a multiple of pi. For parallel geometries use
258 a rotation angle of 1 and for equilinear and equiangular geometries use a rotation angle of 2.
259
260   \item --field-of-view
261     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.
262
263   \item --focal-length
264     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.
265 \end{itemize}
266
267 The Herman phantom is taken with permission from Gabor Hermans 1980 book\cite{HERMAN80}. The Shepp-Logan phantom was published in 1974\cite{SHEPP74}.
268
269 \section{phm2if}\label{phm2if}\index{ctsimtext,phm2if}%
270 Converts a geometric phantom object into an imagefile. The size of the
271 imagefile in pixels must be specified as well as the number of samples
272 to average per pixel.
273
274 \usage
275 \begin{itemize}\itemsep=0pt
276   \item --nsamples
277 \end{itemize}
278
279 \section{pj2if}\label{pj2if}\index{ctsimtext,pj2if}%
280 Convert a projection file into an imagefile.
281
282 \usage
283 \begin{itemize}\itemsep=0pt
284 \item --help    Print brief online help
285 \end{itemize}
286
287 \section{pjinfo}\label{pjinfo}\index{ctsimtext,pjinfo}%
288 Displays information about a projection file.
289
290 \usage
291 \begin{itemize}\itemsep=0pt
292   \item --binaryheader
293   \item --binaryview
294   \item --startview
295   \item --endview
296   \item --dump
297 \end{itemize}
298
299 \section{pjrec}\label{pjrec}\index{ctsimtext,pjrec}%
300 Reconstructs the interior of an object from a projection file.
301
302 \usage
303 \begin{twocollist}
304 \twocolitemruled{{\bf Parameter}}{{\bf Options}}
305 \twocolitem{{\bf --filter}}
306 {Selects which filter to apply to each projection. To properly reconstruct an image, this filter should be multiplied 
307 by the absolute value of distance from zero frequency.
308 \begin{itemize}\itemsep=0pt
309 \item abs\_bandlimit
310 \item abs\_cosine
311 \item abs\_hamming
312 \end{itemize}
313 }
314 \twocolitem{{\bf --filter-parameter}}{Sets the alpha level for Hamming
315   window. At setting of 0.54, this equals the Hanning window.}
316
317 \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. 
318 \begin{itemize}\itemsep=0pt
319 \item convolution
320 \item fourier
321 \item fourier\_table
322 \item fftw
323 \item rfftw
324 \end{itemize}
325 }
326
327 \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.
328 \begin{itemize}\itemsep=0pt
329 \item direct
330 \item inverse-fourier
331 \end{itemize}
332 }
333 \twocolitem{{\bf --interpolation}}{Interpolation technique. {\tt linear} is optimal.
334 \begin{itemize}\itemsep=0pt
335 \item nearest
336 \item linear
337 \end{itemize}
338 }    
339   \twocolitem{{\bf -backprojection}}{Selects the backprojection technique. A setting of {\tt idiff3} is optimal.
340 \begin{itemize}\itemsep=0pt
341 \item trig
342 \item table
343 \item diff
344 \item diff2
345 \item idiff2
346 \item idiff3
347 \end{itemize}
348 }
349 \twocolitem{{\bf --zeropad}}{ Zeropad factor. A setting of {\tt 1} is optimal.}
350
351   \twocolitem{{\bf --preinterpolate}}{Selects preinterpolation interpolation technique and sets the preinterpolation factor. Currently, this is experimental and does not work well.}
352 \end{twocollist}
353
354 \chapter{The Web Browser CGI Interface}\label{webinterface}\index{Web Interface}%
355 \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}%
356 \setfooter{\thepage}{}{}{}{}{\thepage}%
357
358 \section{Overview}\index{Web Interface,Overview}%
359 The CGI program {\tt ctsim.cgi} takes projections of a standard
360 phantom object, performs reconstruction, and then compares the
361 rasterized phantom object with the reconstruction. The comparison is
362 performed both visually by an image subtraction as well as by standard
363 statistics as described by Herman\cite{HERMAN80}.
364
365 \section{Requirements}\index{Web Interface,Requirements}%
366    \begin{itemize}\itemsep=0pt
367       \item Apache or other CGI compatible web server
368
369       \item Perl (version 4.0 or higher)
370
371       \item A client web browser than can display PNG files. Most
372       current web browsers support PNG.
373   \end{itemize}
374
375 \newpage
376
377 \bibliographystyle{plain}
378 \bibliography{ctsim}
379 \addcontentsline{toc}{chapter}{Bibliography}
380 \setheader{{\it REFERENCES}}{}{}{}{}{{\it REFERENCES}}%
381 \setfooter{\thepage}{}{}{}{}{\thepage}%
382
383 \addcontentsline{toc}{chapter}{Index}
384 \setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}} %
385 \setfooter{\thepage}{}{}{}{}{\thepage} %
386 \printindex %
387
388 \end{document}%
389