From 14703961237e3bc231dbc06aeea7fdd921eee970 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Tue, 6 Feb 2001 06:57:46 +0000 Subject: [PATCH] r491: no message --- doc/ctsim-concepts.tex | 17 ++++++++++++----- doc/ctsim-gui.tex | 2 +- doc/ctsim-latex.bib | 9 +++++---- doc/ctsim-tex2rtf.bib | 9 +++++---- doc/ctsim-textui.tex | 27 +++++++++++++-------------- doc/ctsim-web.tex | 2 +- doc/ctsim.bib | 39 --------------------------------------- doc/ctsim.tex | 12 ++++++------ msvc/ctsim/ctsim.plg | 24 +++++------------------- src/ctsim.cpp | 12 ++++++------ src/ctsim.h | 4 +++- 11 files changed, 57 insertions(+), 100 deletions(-) delete mode 100644 doc/ctsim.bib diff --git a/doc/ctsim-concepts.tex b/doc/ctsim-concepts.tex index bd6bffb..521ee46 100644 --- a/doc/ctsim-concepts.tex +++ b/doc/ctsim-concepts.tex @@ -115,15 +115,18 @@ of this square. The two other important variables are the field-of-view-ratio ($f_{vR}$) and the focal-length-ratio ($f_{lR}$). These are used along with $l_p$ to define the focal length and the field of view (not ratios) according to -\begin{equation} +\latexonly{\begin{equation} f_l = \sqrt{2} (l_p/2)(f_{lR})= (l_p/\sqrt{2}) f_{lR} \end{equation} \begin{equation} f_v = \sqrt{2}l_p f_{vR} -\end{equation} +\end{equation}} So the field of view ratio is specified in units of the phantom diameter, whereas the focal length is specified in units of the phantom radius. The -factor of $\sqrt(2)$ can be understood if one refers to figure 1, where +factor of +\latexonly{$\sqrt(2)$} +\latexignore{sqrt(2)} +can be understood if one refers to figure 1, where we consider the case of a first generation parallel beam CT scanner. \subsubsection{Parallel Geometry}\label{geometryparallel}\index{Concepts,Scanner,Geometries,Parallel} @@ -168,21 +171,24 @@ See figure 2. For these geometries, the following logic is executed: A variable dHalfSquare $d_{hs}$ is defined as -\begin{equation} +\latexonly{\begin{equation} d_{hs} = (f_v)/(2\sqrt{2}) = (l_p/2) f_{vR} -\end{equation} +\end{equation}} This is then subtracted from the focal length $f_l$ as calculated above, and assigned to a new variable $\mathrm{dFocalPastPhm} = f_l - d_{hs}$. Since $f_l$ and $d_{hs}$ are derived from the phantom dimension and the input focal length and field of view ratios, one can write, +\latexonly{ \begin{equation} \mathrm{dFocalPastPhm} = f_l -d_{hs} = \sqrt{2}(l_p/2) f_{lR} - (l_p/2) f_{vR} = l_p(\sqrt{2}f_{lR} - f_{vR}) \end{equation} +} If this quantity is less than or equal to zero, then at least for some projections the source is inside the phantom. Perhaps a figure will help at this point. Consider first the case where $f_{vR} = f_{lR} =1 $, figure 3. The square in the figure bounds the phantom and has sides $l_p$. For this case then, +\latexonly{ \[ f_l=\sqrt{2}l_p/2 = l_p/\sqrt{2}, \] @@ -197,6 +203,7 @@ Then \[ \mathrm{dFocalPastPhm} = ({l_p}/{2}) (\sqrt{2}-1) \] +} \begin{figure} \includegraphics[height=0.5\textheight]{ctsimfig3.eps} \caption{Equilinear and equiangluar geometry when focal length ratio = diff --git a/doc/ctsim-gui.tex b/doc/ctsim-gui.tex index c97b60c..ece7646 100644 --- a/doc/ctsim-gui.tex +++ b/doc/ctsim-gui.tex @@ -47,7 +47,7 @@ image. The parameters to set are: x-size Number of columns in image file y-size Number of rows in image file samples Numbers of samples taken per pixel in the x and y directions. - For example, if the nsamples is set to {\tt 3}, then for every + For example, if the nsamples is set to \texttt{3}, then for every pixel in the image file, 9 samples (3 x 3) are averaged. \subsection{Projection Dialog} diff --git a/doc/ctsim-latex.bib b/doc/ctsim-latex.bib index 30441bd..821b299 100644 --- a/doc/ctsim-latex.bib +++ b/doc/ctsim-latex.bib @@ -23,10 +23,11 @@ year = {1992} } -@book{FOLEY80, - author = {Foley and Van Dam}, - title = {Principles of Computer Graphics}, - year = {circa 1980} +@book{FOLEY82, + author = {J.D. Foley and A. van Dam}, + title = {Fundamentals of Interactive Computer Graphics}, + publisher = {Addison-Wesley}, + year = {circa 1982} } @article{SHEPP74, diff --git a/doc/ctsim-tex2rtf.bib b/doc/ctsim-tex2rtf.bib index bef97d7..67efad8 100644 --- a/doc/ctsim-tex2rtf.bib +++ b/doc/ctsim-tex2rtf.bib @@ -20,10 +20,11 @@ year = {1992} } -@book{FOLEY80, - author = {Foley and Van Dam}, - title = {Principles of Computer Graphics}, - year = {circa 1980} +@book{FOLEY82, + author = {J.D. Foley and A. van Dam}, + title = {Fundamentals of Interactive Computer Graphics}, + publisher = {Addison-Wesley}, + year = {circa 1982} } @article{SHEPP74, diff --git a/doc/ctsim-textui.tex b/doc/ctsim-textui.tex index d1d4d0c..dae4886 100644 --- a/doc/ctsim-textui.tex +++ b/doc/ctsim-textui.tex @@ -6,10 +6,10 @@ \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. +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. \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...}. +\texttt{ctsimtext function-name parameters...}. The available functions are: @@ -159,9 +159,8 @@ 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 +\twocolitemruled{\textbf{Parameter}}{\textbf{Options}} +\twocolitem{\textbf{--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 @@ -169,10 +168,10 @@ by the absolute value of distance from zero frequency. \item abs\_hamming \end{itemize} } -\twocolitem{{\bf --filter-parameter}}{Sets the alpha level for Hamming +\twocolitem{\textbf{--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. +\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. \begin{itemize}\itemsep=0pt \item convolution \item fourier @@ -181,20 +180,19 @@ by the absolute value of distance from zero frequency. \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. +\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. \begin{itemize}\itemsep=0pt \item direct \item inverse-fourier \end{itemize} } -\twocolitem{{\bf --interpolation}}{Interpolation technique. {\tt linear} is optimal. +\twocolitem{\textbf{--interpolation}}{Interpolation technique. \texttt{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. +} +\twocolitem{\textbf{-backprojection}}{Selects the backprojection technique. A setting of \texttt{idiff3} is optimal. \begin{itemize}\itemsep=0pt \item trig \item table @@ -204,7 +202,8 @@ by the absolute value of distance from zero frequency. \item idiff3 \end{itemize} } -\twocolitem{{\bf --zeropad}}{ Zeropad factor. A setting of {\tt 1} is optimal.} +\twocolitem{\textbf{--zeropad}}{Zeropad factor. A setting of \texttt{1} is optimal.} -\twocolitem{{\bf --preinterpolate}}{Selects preinterpolation interpolation technique and sets the preinterpolation factor. Currently, this is experimental and does not work well.} +\twocolitem{\textbf{--preinterpolate}}{Selects preinterpolation interpolation technique and sets the preinterpolation factor. Currently, this is experimental and does not work well.} \end{twocollist} + diff --git a/doc/ctsim-web.tex b/doc/ctsim-web.tex index b6ccb31..de856c5 100644 --- a/doc/ctsim-web.tex +++ b/doc/ctsim-web.tex @@ -3,7 +3,7 @@ \setfooter{\thepage}{}{}{}{}{\thepage}% \section{Overview}\index{Web Interface,Overview}% -The CGI program {\tt ctsim.cgi} takes projections of a standard +The CGI program \texttt{ctsim.cgi} takes projections of a standard phantom object, performs reconstruction, and then compares the rasterized phantom object with the reconstruction. The comparison is performed both visually by an image subtraction as well as by standard diff --git a/doc/ctsim.bib b/doc/ctsim.bib deleted file mode 100644 index bef97d7..0000000 --- a/doc/ctsim.bib +++ /dev/null @@ -1,39 +0,0 @@ -@book{KAK87, - author = {A. Kak and M. Slaney}, - title = {Principles of Computerized Tomographic Imaging}, - publisher = {IEEE Press, New York}, - year = {1987} -} - -@book{HERMAN80, - author = {G.T. Herman}, - title = {Image Reconstruction from Projections: The Fundamentals of Computerized Tomography}, - year = {1980}, - publisher = {Academic Press, New York, 1980} -} - -@book{PRESS92, - author = {W.H. Press, S.A. Teukolsky, W.T. Vellerling, and B.P. Flannery}, - title = {Numerical Recipes in C: The Art of Scientific Computing}, - publisher = {Cambridge University Press, Cambridge}, - edition = {Second}, - year = {1992} -} - -@book{FOLEY80, - author = {Foley and Van Dam}, - title = {Principles of Computer Graphics}, - year = {circa 1980} -} - -@article{SHEPP74, - author = {L. Shepp and B. Logan}, - title = {The Fourier Reconstruction of a Head Section}, - journal = {IEEE Transactions in Nuclear Science}, - volume = {NS-21}, - number = {6}, - pages = {21-43}, - year = {1974} -} - - diff --git a/doc/ctsim.tex b/doc/ctsim.tex index 3cf81ee..6dfe2ba 100644 --- a/doc/ctsim.tex +++ b/doc/ctsim.tex @@ -1,5 +1,4 @@ \documentclass[11pt]{report}% -%\input{psbox.tex} \usepackage{graphicx} \usepackage{texhelp} \usepackage{fancyhea} @@ -9,10 +8,11 @@ \usepackage{makeidx} \usepackage{times} \usepackage{hyperref} +\input{psbox.tex} -\newcommand{\ctsim}{{\tt CTSim}} -\newcommand{\ctsimtext}{{\tt CTSimText}} -\newcommand{\usage}{{\bf Usage}{\par}} +\newcommand{\ctsim}{\texttt{CTSim}} +\newcommand{\ctsimtext}{\texttt{CTSimText}} +\newcommand{\usage}{\textbf{Usage}\par} \newcommand{\commandref}[2]{\helpref{{\tt $\backslash$#1}}{#2}}% \newcommand{\commandrefn}[2]{\helprefn{{\tt $\backslash$#1}}{#2}\index{#1}}% @@ -67,7 +67,7 @@ PERFORMANCE OF THIS SOFTWARE. \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% \setfooter{\thepage}{}{}{}{}{\thepage}% -$$\image{3cm;3cm}{logo-huge}$$ +\image{3cm;3cm}{logo-huge.eps} Computed Tomography is a technique for estimating the interior of an object from measurement of radiation collected around the object. This radiation can be either projected through or emitted from the object. @@ -87,7 +87,7 @@ The \ctsim\ package has two executable files: the graphical \helprefn{ctsim}{cts \include{ctsim-web} -%\include{ctsim-appendix} +\include{ctsim-appendix} \newpage diff --git a/msvc/ctsim/ctsim.plg b/msvc/ctsim/ctsim.plg index f81c43f..0222fe4 100644 --- a/msvc/ctsim/ctsim.plg +++ b/msvc/ctsim/ctsim.plg @@ -6,22 +6,13 @@ --------------------Configuration: ctsim - Win32 Debug--------------------

Command Lines

-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP9D3.tmp" with contents +Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP5B.tmp" with contents [ /nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "\wx2.2.5\include" /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /D VERSION=\"3.0.0beta1\" /D "_DEBUG" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.0alpha5\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"D:\ctsim\src\ctsim.cpp" -"D:\ctsim\src\dialogs.cpp" -"D:\ctsim\src\docs.cpp" -"D:\ctsim\src\views.cpp" +"C:\ctsim\src\ctsim.cpp" ] -Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP9D3.tmp" -Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP9D4.tmp" with contents -[ -/nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "\wx2.2.5\include" /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /D VERSION=\"3.0.0beta1\" /D "_DEBUG" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.0beta1\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"D:\ctsim\src\graph3dview.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP9D4.tmp" -Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP9D5.tmp" with contents +Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP5B.tmp" +Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP5C.tmp" with contents [ comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib wxd.lib xpmd.lib tiffd.lib zlibd.lib pngd.lib opengl32.lib glu32.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/ctsim.pdb" /debug /machine:I386 /out:"Debug/ctsim.exe" /pdbtype:sept /libpath:"\wx2.2.5\lib" .\Debug\ctsim.obj @@ -42,15 +33,10 @@ comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib w \wx2.2.5\lib\zlibd.lib \wx2.2.5\lib\tiffd.lib ] -Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP9D5.tmp" +Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP5C.tmp"

Output Window

Compiling... ctsim.cpp -dialogs.cpp -docs.cpp -views.cpp -Compiling... -graph3dview.cpp Linking... diff --git a/src/ctsim.cpp b/src/ctsim.cpp index c024c6e..0aa61a0 100644 --- a/src/ctsim.cpp +++ b/src/ctsim.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: ctsim.cpp,v 1.66 2001/02/02 23:04:06 kevin Exp $ +** $Id: ctsim.cpp,v 1.67 2001/02/06 06:57:46 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -70,7 +70,7 @@ #endif #endif -static const char* rcsindent = "$Id: ctsim.cpp,v 1.66 2001/02/02 23:04:06 kevin Exp $"; +static const char* rcsindent = "$Id: ctsim.cpp,v 1.67 2001/02/06 06:57:46 kevin Exp $"; struct option CTSimApp::ctsimOptions[] = { @@ -329,12 +329,12 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const #endif wxMenu* help_menu = new wxMenu; - help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1"); - help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-T"); + help_menu->Append (MAINMENU_HELP_CONTENTS, "&Contents\tF1"); + help_menu->Append (MAINMENU_HELP_TOPICS, "&Topics\tCtrl-T"); #if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG)) - help_menu->Append(MAINMENU_HELP_SECONDARY, "&Secondary Help"); + help_menu->Append (MAINMENU_HELP_SECONDARY, "&Secondary Help"); #endif - help_menu->Append(MAINMENU_HELP_ABOUT, "&About"); + help_menu->Append (MAINMENU_HELP_ABOUT, "&About"); wxMenuBar* menu_bar = new wxMenuBar; diff --git a/src/ctsim.h b/src/ctsim.h index f2bac54..63316b4 100644 --- a/src/ctsim.h +++ b/src/ctsim.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: ctsim.h,v 1.41 2001/02/04 21:28:19 kevin Exp $ +** $Id: ctsim.h,v 1.42 2001/02/06 06:57:46 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -248,7 +248,9 @@ enum { MAINMENU_HELP_ABOUT = 600, MAINMENU_HELP_CONTENTS, MAINMENU_HELP_TOPICS, +#if defined(CTSIM_WINHELP) && (defined(DEBUG) || defined(_DEBUG)) MAINMENU_HELP_SECONDARY, +#endif MAINMENU_FILE_CREATE_PHANTOM, MAINMENU_FILE_CREATE_FILTER, -- 2.34.1