From 4ab75eaf538f5b42cf86830e44eee70590cd8c9a Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Thu, 15 Feb 2001 23:13:15 +0000 Subject: [PATCH] r544: no message --- doc/ctsim-concepts.tex | 108 ++++++++++++++++++++++------------------- doc/ctsim-gui.tex | 107 ++++++++++++++++++++++++---------------- doc/ctsim.tex | 12 ++--- doc/tex2rtf.ini | 8 +-- 4 files changed, 131 insertions(+), 104 deletions(-) diff --git a/doc/ctsim-concepts.tex b/doc/ctsim-concepts.tex index ff76a9e..29a0fad 100644 --- a/doc/ctsim-concepts.tex +++ b/doc/ctsim-concepts.tex @@ -1,8 +1,8 @@ -\chapter{Concepts}\index{Concepts}% -\setheader{{\it CHAPTER \thechapter}}{}{}{\ctsimheadtitle}{}{{\it CHAPTER \thechapter}}% -\ctsimfooter% +\chapter{Concepts} +\setheader{{\it CHAPTER \thechapter}}{}{}{\ctsimheadtitle}{}{{\it CHAPTER \thechapter}} +\ctsimfooter -\section{Overview}\label{conceptoverview}\index{Conceptual Overview}% +\section{Overview}\index{Conceptual Overview} The operation of \ctsim\ begins with the phantom object. A phantom object consists of geometric elements. A scanner is specified and the collection of x-ray data, or projections, is @@ -14,13 +14,14 @@ compared to the original phantom object. In order to use \ctsim\ effectively, some knowledge of how \ctsim\ works and the approach taken is required. \ctsim\ deals with a variety of object, but the two primary objects that we need to be -concerned with are the \emph{phantom} and the \emph{scanner}. +concerned with are the \helprefn{phantom}{conceptphantom} and the +\helprefn{scanner}{conceptscanner}. \section{Phantoms}\label{conceptphantom} -\subsection{Overview}\label{phantomoverview}\index{Phantom Overview}% +\subsection{Overview}\label{phantomoverview}\index{Phantom!Overview}% \ctsim\ uses geometrical objects to describe the object being -scanned. A phantom is composed a one or more phantom elements. +scanned. A phantom is composed of one or more phantom elements. These elements are simple geometric shapes, specifically, rectangles, triangles, ellipses, sectors and segments. With these elements, the standard phantoms used in the CT literature can be @@ -32,25 +33,25 @@ user-defined phantoms. The types of phantom elements and their definitions are taken with permission from G.T. Herman's 1980 book\cite{HERMAN80}. -\subsection{Phantom File}\label{phantomfile}\index{Phantom file syntax} +\subsection{Phantom File}\label{phantomfile}\index{Phantom!File syntax} Each line in the text file describes an element of the phantom. Each line contains seven entries, in the following form: \begin{verbatim} element-type cx cy dx dy r a \end{verbatim} The first entry defines the type of the element, either -\rtfsp\texttt{rectangle}, \texttt{ellipse}, \texttt{triangle}, -\rtfsp\texttt{sector}, or \texttt{segment}. \texttt{cx}, -\rtfsp\texttt{cy}, \texttt{dx} and \texttt{dy} have different +\texttt{rectangle}, \texttt{ellipse}, \texttt{triangle}, +\texttt{sector}, or \texttt{segment}. \texttt{cx}, +\texttt{cy}, \texttt{dx} and \texttt{dy} have different meanings depending on the element type. -\rtfsp\texttt{r} is the rotation applied to the object in degrees -counterclockwise, and \texttt{a} is the X-ray attenuation +For all phantom elements, \texttt{r} is the rotation applied to the object in degrees +counterclockwise and \texttt{a} is the X-ray attenuation coefficient of the object. Where objects overlap, the attenuations of the overlapped objects are summed. -\subsection{Phantom Elements}\label{phantomelements}\index{Phantom elements} +\subsection{Phantom Elements}\label{phantomelements}\index{Phantom!Elements} \subsubsection{ellipse} Ellipses use \texttt{dx} and \texttt{dy} to define the semi-major and @@ -88,23 +89,21 @@ of the circle is then drawn between those two points and lies below the x-axis. The sector is then rotated and translated the same as a segment. -\subsection{Phantom Size}\index{Phantom size} +\subsection{Phantom Size}\index{Phantom!Size} The overall dimensions of the phantom are increased by 1\% above the specified sizes to avoid clipping due to round-off errors from sampling the polygons of the phantom elements. So, if the phantom is -defined as a rectangle of size 0.1 by 0.1, the actual phantom has -extent 0.101 in each direction. +defined as a rectangle of size 0.1 by 0.1, the phantom size is +0.101 in each direction. -\section{Scanner}\label{conceptscanner}\index{Scanner concepts}% +\section{Scanner}\label{conceptscanner}\index{Scanner!Concepts}% \subsection{Dimensions} Understanding the scanning geometry is the most complicated aspect of using \ctsim. For real-world CT simulators, this is actually quite simple. The geometry is fixed by the manufacturer during the -construction of the scanner and can not be changed. Conversely, -real-world CT scanners can only take objects up to a fixed size. - -\ctsim, being a very flexible simulator, -gives tremendous options in setting up the geometry for a scan. +construction of the scanner and can not be changed. \ctsim, +being a very flexible simulator, gives tremendous options in +setting up the geometry for a scan. In general, the geometry for a scan all starts with the size of the phantom being scanned. This is because \ctsim\ allows for @@ -116,10 +115,10 @@ above, the phantom dimensions are also padded by 1\%. The other important geometry variables for scanning phantoms are the \emph{view diameter}, \emph{scan diameter}, and \emph{focal -length}. These variables are all input into \ctsim\ in terms of +length}. These variables are input into \ctsim\ in terms of ratios rather than absolute values. -\subsubsection{Phantom Diameter}\index{Phantom diameter} +\subsubsection{Phantom Diameter}\index{Phantom!Diameter} \begin{figure} $$\image{5cm;0cm}{scangeometry.eps}$$ \caption{\label{phantomgeomfig} Phantom Geometry} @@ -129,11 +128,12 @@ the phantom definition. The maximum of the phantom length and height is used to define the square that completely surrounds the phantom. Let \latexonly{$p_l$}\latexignore{\emph{Pl}} be the width and height of this square. The diameter of this boundary box, -\latexonly{$p_d$,}\latexignore{\emph{Pd},} is then +\latexonly{$p_d$,}\latexignore{\emph{Pd},} is given by the +Pythagorean theorem and is \latexignore{\\\centerline{\emph{Pl x sqrt(2)}}\\} \latexonly{\begin{equation}p_d = p_l \sqrt{2}\end{equation}} -CT scanners actually collect projections around a -circle rather than a square. The diameter of this circle is also +CT scanners collect projections around a +circle rather than a square. The diameter of this circle is the diameter of the boundary square \latexonly{$p_d$. These relationships are diagrammed in figure~\ref{phantomgeomfig}.} \latexignore{emph{Pd}.} @@ -141,7 +141,7 @@ relationships are diagrammed in figure~\ref{phantomgeomfig}.} \subsubsection{View Diameter}\index{View diameter} The \emph{view diameter} is the area that is being processed during scanning of phantoms as well as during rasterization of -phantoms. By default, the \emph{view diameter} \rtfsp is set equal +phantoms. By default, the \emph{view diameter} is set equal to the \emph{phantom diameter}. It may be useful, especially for experimental reasons, to process an area larger (and maybe even smaller) than the phantom. Thus, during rasterization or during @@ -165,8 +165,8 @@ By default, the entire \emph{view diameter} is scanned. For experimental purposes, it may be desirable to scan an area either larger or smaller than the \emph{view diameter}. Thus, the concept of \emph{scan ratio}, \latexonly{$s_r$,}\latexignore{\emph{SR},} -is arises. The scan diameter -\latexonly{$s_d$}\latexignore{\emph{Sd}} is the diameter over +is arises. The scan diameter, +\latexonly{$s_d$,}\latexignore{\emph{Sd},} is the diameter over which x-rays are collected and is defined as \latexonly{\begin{equation}s_d =v_d s_r\end{equation}} \latexignore{\\\centerline{\emph{Sd = Vd x SR}}\\} @@ -194,7 +194,7 @@ physically impossible and it analagous to have having the x-ray source inside of the \emph{view diameter}. -\subsection{Parallel Geometry}\label{geometryparallel}\index{Parallel Geometry} +\subsection{Parallel Geometry}\label{geometryparallel}\index{Parallel geometry} The simplest geometry, parallel, was used in \mbox{$1^{st}$} generation scanners. As mentioned above, the focal length is not used in this simple @@ -207,7 +207,7 @@ values of less than \texttt{1} are used for these two variables, significant distortions will occur. -\subsection{Divergent Geometries}\label{geometrydivergent}\index{Divergent geometry} +\subsection{Divergent Geometries}\label{geometrydivergent}\index{Equilinear geometry}\index{Equiangular geometry} \subsubsection{Overview} Next consider the case of equilinear (second generation) and equiangular (third, fourth, and fifth generation) geometries. In these cases, @@ -215,20 +215,21 @@ the x-ray beams diverge from a single source to a detector array. In the equilinear mode, a single source produces a fan beam which is read by a linear array of detectors. If the detectors occupy an arc of a circle, then the geometry is equiangular. -\latexonly{The configurations are shown in figure~\ref{divergentfig}.} +\latexonly{These configurations are shown in figure~\ref{divergentfig}.} \begin{figure} \image{10cm;0cm}{divergent.eps} \caption{\label{divergentfig} Equilinear and equiangular geometries.} \end{figure} -\subsubsection{Fan Beam Angle} +\subsubsection{Fan Beam Angle}\index{Fan beam angle} For these divergent beam geometries, the \emph{fan beam angle} needs to be calculated. For real-world CT scanners, this is fixed at the time of manufacture. \ctsim, however, calculates the \emph{fan beam angle}, $\alpha$, from the \emph{scan diameter} and -the \emph{focal length} \latexignore{\\$$\emph{alpha = 2 x asin ( -(Sd / 2) / f)}$$\\} +the \emph{focal length}: +\latexignore{\centerline{\emph{alpha = 2 x asin ( +(Sd / 2) / f)}}} \latexonly{\begin{equation}\label{alphacalc}\alpha = 2 \sin^{-1} ((s_d / 2) / f)\end{equation} This is illustrated in figure~\ref{alphacalcfig}.} @@ -250,7 +251,7 @@ To illustrate, the \emph{scan diameter} can be defined as \latexignore{\\\centerline{\emph{Sd = Sr x Vr x Pd}}\\} Further, $f$ can be defined as -\latexonly{\[f = f_r (v_r p_d / 2)\]} +\latexonly{\begin{equation} = f_r (v_r p_d / 2)\end{equation}} \latexignore{\\\centerline{\emph{F = FR x (VR x Pd)$$\\}}} Substituting these equations into \latexignore{the above @@ -267,7 +268,7 @@ Since in normal scanning $s_r$ = 1, $\alpha$ depends only upon the \subsubsection{Detector Array Size} In general, you do not need to be concerned with the detector -array size. It is automatically calculated by \ctsim. For the +array size -- it is automatically calculated by \ctsim. For the particularly interested, this section explains how the detector array size is calculated. @@ -305,18 +306,20 @@ length}. It is calculated as \section{Reconstruction}\label{conceptreconstruction}\index{Reconstruction Overview}% \subsection{Direct Inverse Fourier} -This method is not currently implemented in \ctsim, however it is +This method is not currently implemented in \ctsim; however, it is planned for a future release. This method does not give results as -accurate as filtered backprojection. The difference is due primarily +accurate as filtered backprojection. This is due primarily because interpolation occurs in the frequency domain rather than the spatial domain. \subsection{Filtered Backprojection}\index{Filtered backprojection} The technique is comprised of two sequential steps: -filtering projections and then backprojecting the filtered projections. Though -these two steps are sequential, each view position can be processed individually. +filtering projections followed backprojecting the filtered projections. Though +these two steps are sequential, each view position can be processed independently. \subsubsection{Multiple Computer Processing} +Since each view can be processed independently, filtered backprojection is amendable to +parallel processing. Indeed, this has been used in commercial scanners to speed reconstruction. This parallelism is exploited in the MPI versions of \ctsim\ where the data from all the views are spread about amongst all of the processors. This has been testing in a 16-CPU cluster with excellent @@ -348,15 +351,16 @@ interpolation can be specified. Images can be compared statistically. Three measurements can be calculated by \ctsim. They are taken from the standard measurements used by Herman\cite{HERMAN80}. They are: -\begin{description} -\item[$d$] The normalized root mean squared distance measure. -\item[$r$] The normalized mean absolute distance measure. -\item[$e$] The worst case distance measure over a $2\times2$ area. -\end{description} + +\begin{twocollist} +\twocolitem{\textbf{$d$}}{The normalized root mean squared distance measure.} +\twocolitem{\textbf{$r$}}{The normalized mean absolute distance measure.} +\twocolitem{\textbf{$e$}}{The worst case distance measure over a \latexonly{$2\times2$}\latexignore{\emph{2 x 2}} pixel area.} +\end{twocollist} These measurements are defined in equations \ref{dequation} through \ref{bigrequation}. In these equations, $p$ denotes the phantom image, $r$ denotes the reconstruction -image, and $\bar{p}$ denotes the average pixel value for $p$. Each of the images have a +image, and $\bar{p}$ denotes the average pixel value of $p$. Each of the images have a size of $m \times n$. In equation \ref{eequation} $[n/2]$ and $[m/2]$ denote the largest integers less than $n/2$ and $m/2$, respectively. @@ -365,8 +369,10 @@ integers less than $n/2$ and $m/2$, respectively. %Tex2RTF can not handle the any subscripts or superscripts for the inner summation unless % have a space character before the \sum \latexonly{\begin{equation}\label{dequation} d =\sqrt{\frac{\displaystyle \sum_{i=1}^{n}{ \sum_{j=1}^{m}{(p_{i,j} - r_{i,j})^2}}}{\displaystyle \sum_{i=1}^{n}{ \sum_{j=1}^{m}{(p_{i,j} - \bar{p})^2}}}}\end{equation}} -\latexonly{\[\label{requation}r = \frac{ \displaystyle \sum_{i=1}^{n}{ \sum_{j=1}^{m}{|p_{i,j} - r_{i,j}|}}}{ \displaystyle \sum_{i=1}^{n}{ \sum_{j=1}^{m}{|p_{i,j}|}}}\]} +\latexonly{\begin{equation}\label{requation}r = \frac{ \displaystyle \sum_{i=1}^{n}{ \sum_{j=1}^{m}{|p_{i,j} - r_{i,j}|}}}{ \displaystyle \sum_{i=1}^{n}{ \sum_{j=1}^{m}{|p_{i,j}|}}}\end{equation}} \latexonly{\begin{equation}\label{eequation}e = \max_{1 \le k \le [n/2] \atop 1 \le l \le [m/2]}(|P_{k,l} - R_{k,l}|)\end{equation}} \latexonly{where} -\latexonly{\[\label{bigpequation}P_{k,l} = \textstyle \frac{1}{4} (p_{2k,2l} + p_{2k+1,2l} + p_{2k,2l+l} + p_{2k+1,2l+1})\]} +\latexonly{\begin{equation}\label{bigpequation}P_{k,l} = \textstyle \frac{1}{4} (p_{2k,2l} + p_{2k+1,2l} + p_{2k,2l+l} + p_{2k+1,2l+1})\end{equation}} \latexonly{\begin{equation}\label{bigrequation}R_{k,l} = \textstyle \frac{1}{4} (r_{2k,2l} + r_{2k+1,2l} + r_{2k,2l+1} + r_{2k+1,2l+1})\end{equation}} +\begin{comment} +\end{comment} diff --git a/doc/ctsim-gui.tex b/doc/ctsim-gui.tex index 0e31eb1..1151e0e 100644 --- a/doc/ctsim-gui.tex +++ b/doc/ctsim-gui.tex @@ -4,8 +4,8 @@ \section{Overview}\index{Graphical shell} -\ctsim\ is the graphical shell for the CTSim project. It utilizes -using the \urlref{wxWindows}{http://www.wxwindows.org} library for +\ctsim\ is the graphical shell for the CTSim project. This shell uses +the \urlref{wxWindows}{http://www.wxwindows.org} library for cross-platform compatibility. The graphical shell is compatible with Microsoft Windows, \urlref{GTK}{http://www.gtk.org}, and \urlref{Motif}{http://www.openmotif.org} graphical environments. @@ -13,7 +13,7 @@ with Microsoft Windows, \urlref{GTK}{http://www.gtk.org}, and \usage \texttt{ctsim [files to open...]} You can invoke \ctsim\ by itself on the command line, or include -on the command-line any number of files that you want \ctsim\ to +any number of files that you want \ctsim\ to automatically open. \ctsim\ can open projection files, image files, phantom files, and plot files. @@ -42,7 +42,7 @@ these labels for storing history information regarding the creation and modifications of images. \subsection{Projection} -Projection files are created from Phantom files during the +Projection files are created from phantom files during the projection process. Numerous options are available for the creation of the these files. The files are stored in a binary format with cross-platform compatibility on little and big endian @@ -51,12 +51,12 @@ architectures. \subsection{Plot} Plot files are created by \ctsim\ during analysis of image files. They can be read and stored on the disk. They are stored as ASCII -files for easy cross-platform support. +files for easy cross-platform support and editing. \section{Global Menu Commands} -These commands are present on the menus of all windows. +These global commands are present on the menus of all windows. -\subsection{File - Create Phantom}\index{Create phantom dialog} +\subsection{File - Create Phantom}\label{IDH_DLG_PHANTOM}\index{Dialog!Create phantom} This command brings up a dialog box showing the phantoms that are preprogrammed into \ctsim. After selecting one of these phantoms, the new window with that phantom will be generated. The preprogrammed phantoms are: @@ -68,12 +68,13 @@ phantom will be generated. The preprogrammed phantoms are: center of the phantom and \texttt{0} everywhere else.} \end{twocollist} -\subsection{File - Create Filter}\index{Create filter dialog} +\subsection{File - Create Filter}\label{IDH_DLG_FILTER}\index{Dialog!Create filter} This command brings up a dialog box showing the pre-programmed filters of \ctsim. This command will create a 2-dimensional image of the selected filter. The center of the filter is at the center of the image. These filters can be created in their natural frequency domain or in their spatial domain. + \begin{twocollist} \twocolitem{\textbf{Filter}}{Selects the filter to generate.} \twocolitem{\textbf{Domain}}{Selects either the \texttt{Frequency} or \texttt{Spatial} domains. The filters have the @@ -83,16 +84,19 @@ frequency domain as their natural domain.} \twocolitem{\textbf{Hamming Parameter}}{Sets the parameter for the Hamming filter.} \twocolitem{\textbf{Bandwidth}}{Sets the bandwidth of the filter.} \twocolitem{\textbf{Axis (input) Scale}}{Sets the scale for the filter input. By default, the input to the filter is -the distance in pixels from the center of the image. By changing this value, one can set a scale the input to the filter.} -\twocolitem{\textbf{Filter (output) Scale)}}{Multiplies the output of the filter by this amount. By default, the filter has a maximum +the distance in pixels from the center of the image. By changing this value, one can set a scale the input to the filter. +For example, if the output image is \texttt{101} pixels and thus the center of the image is at \texttt{(50,50)}, then a pixel +lying at point \texttt{100,50} would be 50 units from the center of the filter. By applying an \texttt{Axis scale} of +\texttt{0.1}, then that point would be scaled to 5 units from the center of the filter.} +\twocolitem{\textbf{Filter (output) Scale}}{Multiplies the output of the filter by this amount. By default, the filter has a maximum value of \texttt{1}.} \end{twocollist} -\subsection{File - Preferences}\index{Preferences} +\subsection{File - Preferences}\label{IDH_DLG_PREFERENCES}\index{Dialog!Preferences} This command displays a dialog box that allows users to control the behavior of \ctsim. These options are saved across \ctsim\ sessions. Under Microsoft Windows environments, they are stored in the registry. -On UNIX and Linux environments, they are stored in the users home +On UNIX and Linux environments, they are stored in the user's home directory with the filename of \texttt{.ctsim}. \begin{twocollist} @@ -141,23 +145,23 @@ Displays the properties of a phantom which includes: \item A list of all component phantom elements \end{itemize} -\subsection{Rasterize Dialog}\index{Rasterize} +\subsection{Rasterize Dialog}\label{IDH_DLG_RASTERIZE}\index{Dialog!Rasterize} This creates an image file from a phantom. Technically, it converts the phantom from a vector (infinite resolution) object into a 2-dimension array of floating-point pixels. The parameters to set are: \begin{twocollist} -\twocolitemruled{\textbf{Parameter}}{\textbf{Options}} \twocolitem{\textbf{X size}}{Number of columns in image file} \twocolitem{\textbf{Y size}}{Number of rows in image file} \twocolitem{\textbf{Samples per pixel}}{Numbers of samples taken per pixel in both the x and y directions. For example, if the \texttt{Samples per pixel} is set to \texttt{3}, then for every -pixel in the image file 9 samples ($3\times3$) are averaged.} +pixel in the image file 9 samples \latexonly{($3\times3$)}\latexignore{(3 x 3)} +are averaged.} \end{twocollist} -\subsection{Projection Dialog}\index{Projection collection} +\subsection{Projection Dialog}\label{IDH_DLG_PROJECTIONS}\index{Dialog!Projections} This creates a projection file from a phantom. The options available when collecting projections are: @@ -191,10 +195,11 @@ of \texttt{1.0} is optimal. For other geometries, this should be at least \texttt{2.0} to avoid artifacts.} \end{twocollist} -\subsection{Advanced Options} +\textbf{Advanced Options} + \begin{twocollist} \twocolitem{\textbf{Rotation Angle}}{Sets the rotation amount as a -multiple of pi. For parallel geometries use a rotation angle of \texttt{1} +multiple of \latexonly{$\pi$.}\latexignore{pi.} For parallel geometries use a rotation angle of \texttt{1} and for equilinear and equiangular geometries use a rotation angle of \texttt{2}. Using any other rotation angle will lead to artifacts.} \end{twocollist} @@ -210,12 +215,12 @@ Properties of image files include \item History labels (text descriptions of the processing for this image) \end{itemize} -\subsection{File - Export}\index{Image export} +\subsection{File - Export}\label{IDH_DLG_EXPORT}\index{Image!Export} This command allows for exporting image files to a standard graphics file format. This is helpful when you want to take an image and import it into another application. The current \helprefn{intensity scale}{intensityscale} is used when exporting -the file. The support file formats are: +the file. The supported graphic formats are: \begin{twocollist} \twocolitem{\textbf{PNG}}{Portable Network Graphics format. This uses 8-bits or @@ -228,20 +233,24 @@ UNIX systems.} \end{twocollist} -\subsection{View}\label{intensityscale} +\subsection{View}\label{intensityscale}\index{Intensity Scale} These commands are used change the intensity scale for viewing the image. These commands do not change the image data. When the minimum intensity is set, then the color pure black is assigned to that image intensity. Similarly, when the maximum intensity is set, the the color pure white is assigned to that image value. -\subsubsection{Set} -This command displays up a dialog box that allows you to set the lower +Changing the intensity scale is useful when examining different image features. +In clinical medicine, the intensity scale is often changed to examine bone +(high intensity) verses soft-tissue (medium intensity) features. + +\subsubsection{Set}\label{IDH_DLG_MINMAX} +This command displays a dialog box that allows you to set the lower and upper intensities to display. -\subsubsection{Auto} -This command displays up a dialog box that allows \ctsim\ to automatically -make an intensity scale. The options that \ctsim\ needs to make this +\subsubsection{Auto}\label{IDH_DLG_AUTOSCALE} +This command displays a dialog box that allows \ctsim\ to automatically +make an intensity scale. The parameters that \ctsim\ needs to make this automatic scale are: \begin{twocollist} @@ -255,8 +264,9 @@ is specified as a ratio of the standard deviation.} As an example, if \texttt{median} is selected as the center and \texttt{0.5} is selected as the width, the the minimum intensity will -be $median - 0.5 \times standard deviation$ and the maximum will be -$median + 0.5 \times standard deviation$. +be \latexonly{$median - 0.5 \times standardDeviation$}\latexignore{\emph{median - 0.5 x standardDeviation}} +and the maximum will be \latexonly{$median + 0.5 \times standardDeviation$.}\latexignore{\emph{ +median + 0.5 x standardDeviation}.} \subsubsection{Full} This command resets the intensity scale to the full scale of the image. @@ -268,14 +278,15 @@ and for some commands, also upon a comparison image. \subsubsection{Add, Subtract, Multiply, Divide} These are simple arithmetic operations. \ctsim\ will display a dialog box showing all of the currently opened image files that are the -same size of the active image. After the selection of a compatible image, +same size as the active image. After the selection of a compatible image, \ctsim\ will perform the arithmetic operation on the two images and make a new result image. \subsubsection{Image Size} -This command will generate a new window with the current image scaled to -any size. Currently, \texttt{bilinear} interpolation provides the best -image quality. +This command will generate a new image based on the current image. The new +image can be scaled to any size. A dialog +appears asking for the size of the new image. Bilinear interpolation +is used when calculating the new image. \subsubsection{3-D Conversion} Generates a 3-dimensional view of the current phantom. This view can be @@ -285,22 +296,32 @@ rotation is controlled by the \texttt{T} and \texttt{Y} keys. Other options are presented on the \texttt{View} menu and include: \begin{itemize} -\item Surface plot versus wireframe -\item Smooth shading versus flat shading -\item Lighting on or off -\item Color scale on or off +\item Surface plot versus wireframe plot. +\item Smooth shading versus flat shading. +\item Lighting on or off. +\item Color scale on or off. \end{itemize} \subsection{Filter}\index{Image filter} -These commands filter and modify the image. +These commands filter and modify the image \subsubsection{Arithmetic} -These are simple arithmetic functions that should be self-explanatory. +These commands operate on the image on a pixel-by-pixel basis. The commands +support both real and complex-valued images. The available arithmetic commards are: + +\begin{twocollist} + \twocolitem{\textbf{Invert}}{Negate pixel values.} + \twocolitem{\textbf{Log}}{Take natural logrithm of pixel values.} + \twocolitem{\textbf{Exp}}{Take natural exponent of pixel values.} + \twocolitem{\textbf{Square}}{Take square of pixel values.} + \twocolitem{\textbf{Square root}}{Take square root of pixel values.} +\end{twocollist} + \subsubsection{Frequency Based} This commands allow the Fourier and inverse Fourier transformations of images. By default, the transformations will automatically convert -images from Fourier to natural order as expected. For example, \texttt{2-D FFT} +images between Fourier to natural orders as expected. For example, \texttt{2-D FFT} will transform the points into natural order after the Fourier transform. Similarly the inverse, \texttt{2-D IFFT}, will reorder the points from natural order to Fourier order before applying the inverse Fourier transformation. @@ -317,7 +338,7 @@ These commands are used for analyzing an image. The commands plot rows and columns of images. There are also commands that perform FFT and IFFT transformations prior to plotting. -\subsubsection{Image Comparison} +\subsubsection{Image Comparison}\label{IDH_DLG_COMPARISON}\index{Image!Comparison} This command performs statistical comparisons between two images. An option also exists for generating a difference image from the two input images. @@ -335,7 +356,7 @@ The displayed properties include: \item The variables used when generating the projections from the phantom \end{itemize} -\subsection{Process - Convert Polar Dialog}\label{convertpolardialog}\index{Polar conversion} +\subsection{Process - Convert Polar Dialog}\label{IDH_DLG_POLAR}\index{Polar conversion} Creates an image file with the polar conversion of the projection data. The options to set are: \begin{twocollist} @@ -352,7 +373,7 @@ Polar Dialog}{convertpolardialog}. For this command, though, the projections are Fourier transformed prior to conversion to polar image. -\subsection{Reconstruct - Filtered Backprojection Dialog}\index{Reconstruction dialog} +\subsection{Reconstruct - Filtered Backprojection Dialog}\label{IDH_DLG_RECONSTRUCTION}\index{Dialog!Reconstruction} This dialog sets the parameters for reconstructing an image from projections using the Filtered Backprojection technique. @@ -399,7 +420,7 @@ is many times faster than cubic interpolation. } \end{twocollist} -\subsection{Advanced Options} +\textbf{Advanced Options} These options are only visible if \emph{Advanced Options} has been selected in the \texttt{File - Preferences} dialog. These parameters diff --git a/doc/ctsim.tex b/doc/ctsim.tex index 6b4d73f..145fc6a 100644 --- a/doc/ctsim.tex +++ b/doc/ctsim.tex @@ -23,12 +23,12 @@ \newcommand{\indexit}[1]{#1\index{#1}}% \newcommand{\inioption}[1]{{\bf {\tt #1}}\index{#1}}% -\newcommand{\manvernum}[0]{0.4} +\newcommand{\manvernum}[0]{0.5} \newcommand{\manver}[0]{v\manvernum} -\newcommand{\mandate}[0]{February 14, 2001} +\newcommand{\mandate}[0]{February 15, 2001} \newcommand{\ctsimfooter}{\setfooter{\thepage}{}{}{\small Manual \manver}{\small \mandate}{\thepage}} \newcommand{\doublehyphen}[1]{-\,-\texttt{#1}} -\newcommand{\ctsimvernum}[0]{3.0.0beta2} +\newcommand{\ctsimvernum}[0]{3.0.0} \newcommand{\ctsimver}[0]{CTSim \ctsimvernum} \newcommand{\ctsimheadtitle}{\ctsimver Manual} @@ -39,13 +39,11 @@ %\backgroundcolour{255;255;255}\textcolour{0;0;0}% Has an effect in HTML only \title{CTSim 3.0 User Manual}% \author{Kevin Rosenberg, M.D.}% -\date{February 9, 2001}% \makeindex% \begin{document} \textheight=9in \textwidth=6.5in -\topmargin=-0.25in \evensidemargin=0in \oddsidemargin=0in @@ -81,7 +79,7 @@ WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -\chapter{Introduction}\label{introduction} +\chapter{Introduction}\label{IDH_INTRODUCTION}\index{Introduction} \pagenumbering{arabic} \setheader{{\it CHAPTER \thechapter}}{}{}{\ctsimheadtitle}{}{{\it CHAPTER \thechapter}}% \ctsimfooter @@ -98,7 +96,7 @@ numerous visualization and analytic tools. This manual begins with an introduction into the concepts of \ctsim. Next, the graphical, command-line, and web shells are -presented. Finally, the installation of \ctsim is discussed. +presented. Finally, the installation of \ctsim\ is discussed. I hope that you enjoy \ctsim! diff --git a/doc/tex2rtf.ini b/doc/tex2rtf.ini index 22d2a15..a4d3c6d 100644 --- a/doc/tex2rtf.ini +++ b/doc/tex2rtf.ini @@ -2,11 +2,14 @@ winHelpVersion = 4 winHelpContents = yes #generateHPJ = yes htmlWorkshopFiles = true -combineSubSections = true +#combineSubSections = true runTwice = yes useUpButton = yes winHelpTitle = "CTSim Manual" -\mathrm [1]{} +aliasFileName = "ctsim.alias" +mapFileName = "../src/ctsim-map.h" +\parbox [2]{} +\mathrms [1]{} \sqrt [1]{} \sin [0]{} \tan [0]{} @@ -24,5 +27,4 @@ winHelpTitle = "CTSim Manual" \[ [0]{} \] [0]{} \bar [1]{} -\parbox [2]{} \toocomplex [1]{} -- 2.34.1