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