Select a standard phantom
\begin{itemize}\itemsep=0pt
\item herman
- \item herman-b
\item shepp-logan
- \item shepp-logan-b
+ \item unit-pulse
\end{itemize}
\item --phmfile
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: phantom.h,v 1.22 2001/02/08 06:25:07 kevin Exp $
+** $Id: phantom.h,v 1.23 2001/02/09 14:34:16 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
public:
static const int PHM_INVALID;
static const int PHM_HERMAN;
- static const int PHM_B_HERMAN;
static const int PHM_SHEPP_LOGAN;
- static const int PHM_B_SHEPP_LOGAN;
static const int PHM_UNITPULSE;
Phantom ();
#endif
void addStdHerman ();
- void addStdHermanBordered ();
void addStdSheppLogan ();
- void addStdSheppLoganBordered ();
void print (std::ostream& os) const;
void print (std::ostringstream& os) const;
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: phantom.cpp,v 1.28 2001/02/08 06:25:07 kevin Exp $
+** $Id: phantom.cpp,v 1.29 2001/02/09 14:34:16 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
const int Phantom::PHM_INVALID = -1;
const int Phantom::PHM_HERMAN = 0;
-const int Phantom::PHM_B_HERMAN = 1;
-const int Phantom::PHM_SHEPP_LOGAN = 2;
-const int Phantom::PHM_B_SHEPP_LOGAN = 3;
-const int Phantom::PHM_UNITPULSE = 4;
+const int Phantom::PHM_SHEPP_LOGAN = 1;
+const int Phantom::PHM_UNITPULSE = 2;
const char* Phantom::s_aszPhantomName[] =
{
{"herman"},
- {"herman-b"},
{"shepp-logan"},
- {"shepp-logan-b"},
- {"unitpulse"},
+ {"unit-pulse"},
};
const char* Phantom::s_aszPhantomTitle[] =
{
{"Herman Head"},
- {"Herman Head (Bordered)"},
{"Shepp-Logan"},
- {"Shepp-Logan (Bordered)"},
{"Unit Pulse"},
};
case PHM_HERMAN:
addStdHerman();
break;
- case PHM_B_HERMAN:
- addStdHermanBordered();
- break;
case PHM_SHEPP_LOGAN:
addStdSheppLogan();
break;
- case PHM_B_SHEPP_LOGAN:
- addStdSheppLoganBordered();
- break;
case PHM_UNITPULSE:
m_composition = P_UNIT_PULSE;
addPElem ("rectangle", 0., 0., 100., 100., 0., 0.); // outline
addPElem ("ellipse", 0.5538, -0.3858, 0.0330, 0.2060, -18.0, 0.03);
}
-void
-Phantom::addStdSheppLoganBordered ()
-{
- addStdSheppLogan ();
- addPElem ("rectangle", 0.000, 0.0000, 0.8600, 1.150, 0.0, 0.00);
-}
/* NAME
* addStdHerman Standard head phantom of G. T. Herman
addPElem ("ellipse", 0.000, 0.00, 7.875, 5.7187, 90.00, -0.206);
}
-void
-Phantom::addStdHermanBordered ()
-{
- addStdHerman();
- addPElem ("rectangle", 0.000, 0.00, 10.780, 8.110, 90.00, 0.000);
-}
/* NAME
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: cubicinterp.cpp,v 1.2 2001/02/09 01:55:24 kevin Exp $
+** $Id: cubicinterp.cpp,v 1.3 2001/02/09 14:34:16 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
CubicInterpolator::CubicInterpolator (const double* const y, const int n)
: m_pdY(y), m_n(n)
{
+ // Precalculate 2nd derivative of y and put in m_pdY2
+ // Calculated by solving set of simultaneous cubic spline equations
+ // Only n-2 cubic spline equations, but able to make two more
+ // equations by setting second derivative to 0 at ends
+
m_pdY2 = new double [n];
m_pdY2[0] = 0; // second deriviative = 0 at beginning and end
m_pdY2[n-1] = 0;
<pre>
<h1>Build Log</h1>
<h3>
---------------------Configuration: libctsim - Win32 Debug--------------------
+--------------------Configuration: libctsim - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP108.tmp" with contents
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16A.tmp" with contents
[
-/nologo /G6 /MTd /W3 /Gm /Gi /GR /GX /Zi /Od /Gy /I "..\..\..\wx2.2.5\src\png" /I "..\..\..\wx2.2.5\src\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.5\include" /D "_DEBUG" /D "HAVE_WXWIN" /D "HAVE_STRING_H" /D "HAVE_GETOPT_H" /D "WIN32" /D "_MBCS" /D "_LIB" /D "MSVC" /D "HAVE_FFTW" /D "HAVE_PNG" /D "HAVE_SGP" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /FR"Debug/" /Fp"Debug/libctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
+/nologo /G6 /MT /W3 /GR- /GX /O2 /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.5\include" /D "NDEBUG" /D "HAVE_STRING_H" /D "HAVE_GETOPT_H" /D "WIN32" /D "_MBCS" /D "_LIB" /D "MSVC" /D "HAVE_FFTW" /D "HAVE_PNG" /D "HAVE_SGP" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /Fp"Release/libctsim.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
"C:\ctsim\libctsim\backprojectors.cpp"
]
-Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP108.tmp"
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP109.tmp" with contents
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16A.tmp"
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16B.tmp" with contents
[
-/nologo /out:"Debug\libctsim.lib"
-.\Debug\array2dfile.obj
-.\Debug\backprojectors.obj
-.\Debug\clip.obj
-.\Debug\consoleio.obj
-.\Debug\dlgezplot.obj
-.\Debug\ezplot.obj
-.\Debug\ezset.obj
-.\Debug\ezsupport.obj
-.\Debug\filter.obj
-.\Debug\fnetorderstream.obj
-.\Debug\fourier.obj
-.\Debug\getopt.obj
-.\Debug\getopt1.obj
-.\Debug\globalvars.obj
-.\Debug\hashtable.obj
-.\Debug\imagefile.obj
-.\Debug\mathfuncs.obj
-.\Debug\phantom.obj
-.\Debug\plotfile.obj
-.\Debug\pol.obj
-.\Debug\procsignal.obj
-.\Debug\projections.obj
-.\Debug\reconstruct.obj
-.\Debug\scanner.obj
-.\Debug\sgp.obj
-.\Debug\strfuncs.obj
-.\Debug\syserror.obj
-.\Debug\trace.obj
-.\Debug\transformmatrix.obj
-.\Debug\xform.obj
-.\Debug\cubicinterp.obj
+/nologo /G6 /MT /W3 /GR /GX /O2 /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2.2.5\include" /D "NDEBUG" /D "HAVE_STRING_H" /D "HAVE_GETOPT_H" /D "WIN32" /D "_MBCS" /D "_LIB" /D "MSVC" /D "HAVE_FFTW" /D "HAVE_PNG" /D "HAVE_SGP" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /Fp"Release/libctsim.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
+"C:\ctsim\libctgraphics\dlgezplot.cpp"
+"C:\ctsim\libctsim\filter.cpp"
+"C:\ctsim\libctsim\fourier.cpp"
+"C:\ctsim\libctsim\globalvars.cpp"
+"C:\ctsim\libctsupport\hashtable.cpp"
+"C:\ctsim\libctsim\imagefile.cpp"
+"C:\ctsim\libctsim\phantom.cpp"
+"C:\ctsim\libctsupport\plotfile.cpp"
+"C:\ctsim\libctgraphics\pol.cpp"
+"C:\ctsim\libctsim\procsignal.cpp"
+"C:\ctsim\libctsim\projections.cpp"
+"C:\ctsim\libctsim\reconstruct.cpp"
+"C:\ctsim\libctsim\scanner.cpp"
+"C:\ctsim\libctsupport\syserror.cpp"
+"C:\ctsim\libctsim\trace.cpp"
+"C:\ctsim\libctsupport\cubicinterp.cpp"
]
-Creating command line "link.exe -lib @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP109.tmp"
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16B.tmp"
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16C.tmp" with contents
+[
+/nologo /out:"Release\libctsim.lib"
+.\Release\array2dfile.obj
+.\Release\backprojectors.obj
+.\Release\clip.obj
+.\Release\consoleio.obj
+.\Release\dlgezplot.obj
+.\Release\ezplot.obj
+.\Release\ezset.obj
+.\Release\ezsupport.obj
+.\Release\filter.obj
+.\Release\fnetorderstream.obj
+.\Release\fourier.obj
+.\Release\getopt.obj
+.\Release\getopt1.obj
+.\Release\globalvars.obj
+.\Release\hashtable.obj
+.\Release\imagefile.obj
+.\Release\mathfuncs.obj
+.\Release\phantom.obj
+.\Release\plotfile.obj
+.\Release\pol.obj
+.\Release\procsignal.obj
+.\Release\projections.obj
+.\Release\reconstruct.obj
+.\Release\scanner.obj
+.\Release\sgp.obj
+.\Release\strfuncs.obj
+.\Release\syserror.obj
+.\Release\trace.obj
+.\Release\transformmatrix.obj
+.\Release\xform.obj
+.\Release\cubicinterp.obj
+]
+Creating command line "link.exe -lib @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16C.tmp"
<h3>Output Window</h3>
Compiling...
backprojectors.cpp
+Compiling...
+dlgezplot.cpp
+filter.cpp
+fourier.cpp
+globalvars.cpp
+hashtable.cpp
+imagefile.cpp
+phantom.cpp
+plotfile.cpp
+pol.cpp
+procsignal.cpp
+projections.cpp
+reconstruct.cpp
+scanner.cpp
+syserror.cpp
+trace.cpp
+cubicinterp.cpp
Creating library...
<h3>
---------------------Configuration: ctsim - Win32 Debug--------------------
+--------------------Configuration: ctsim - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP10A.tmp" with contents
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16D.tmp" with contents
+[
+/nologo /G6 /MT /W3 /GR /GX /O2 /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\include" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /D "NDEBUG" /D "__WXWIN__" /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"Release/" /Fp"Release/ctsim.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
+"C:\ctsim\src\ctsim.cpp"
+"C:\ctsim\src\dialogs.cpp"
+"C:\ctsim\src\dlgprojections.cpp"
+"C:\ctsim\src\dlgreconstruct.cpp"
+"C:\ctsim\src\docs.cpp"
+"C:\ctsim\src\views.cpp"
+]
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16D.tmp"
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16E.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
-.\Debug\dialogs.obj
-.\Debug\dlgprojections.obj
-.\Debug\dlgreconstruct.obj
-.\Debug\docs.obj
-.\Debug\graph3dview.obj
-.\Debug\views.obj
-.\Debug\ctsim.res
-\ctsim\msvc\libctsim\Debug\libctsim.lib
-"\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib"
-"\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib"
-\wx2.2.5\lib\jpegd.lib
-\wx2.2.5\lib\pngd.lib
-\wx2.2.5\lib\wxd.lib
-\wx2.2.5\lib\xpmd.lib
-\wx2.2.5\lib\zlibd.lib
-\wx2.2.5\lib\tiffd.lib
+/nologo /G6 /MT /W3 /GR /GX /O2 /I "..\..\..\fftw-2.1.3\fftw" /I "\wx2.2.5\include" /I "\wx2.2.5\src\png" /I "\wx2.2.5\src\zlib" /I "..\..\include" /I "..\..\getopt" /I "..\..\..\fftw-2.1.3\rfftw" /D "NDEBUG" /D "__WXWIN__" /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"Release/" /Fp"Release/ctsim.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
+"C:\ctsim\src\graph3dview.cpp"
]
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP10A.tmp"
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16E.tmp"
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16F.tmp" with contents
+[
+kernel32.lib user32.lib wsock32.lib comctl32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib tiff.lib jpeg.lib png.lib zlib.lib xpm.lib opengl32.lib glu32.lib /nologo /subsystem:windows /incremental:no /pdb:"Release/ctsim.pdb" /machine:I386 /out:"Release/ctsim.exe" /libpath:"\wx2.2.5\lib"
+.\Release\ctsim.obj
+.\Release\dialogs.obj
+.\Release\dlgprojections.obj
+.\Release\dlgreconstruct.obj
+.\Release\docs.obj
+.\Release\graph3dview.obj
+.\Release\views.obj
+.\Release\ctsim.res
+\ctsim\msvc\libctsim\Release\libctsim.lib
+"\fftw-2.1.3\Win32\FFTW2st\Release\FFTW2st.lib"
+"\fftw-2.1.3\Win32\RFFTW2st\Release\RFFTW2st.lib"
+\wx2.2.5\lib\jpeg.lib
+\wx2.2.5\lib\png.lib
+\wx2.2.5\lib\wx.lib
+\wx2.2.5\lib\xpm.lib
+\wx2.2.5\lib\zlib.lib
+\wx2.2.5\lib\tiff.lib
+]
+Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP16F.tmp"
<h3>Output Window</h3>
+Compiling...
+ctsim.cpp
+dialogs.cpp
+dlgprojections.cpp
+dlgreconstruct.cpp
+docs.cpp
+views.cpp
+Compiling...
+graph3dview.cpp
Linking...
+LINK : warning LNK4089: all references to "WSOCK32.dll" discarded by /OPT:REF
<h3>Results</h3>
-ctsim.exe - 0 error(s), 0 warning(s)
+ctsim.exe - 0 error(s), 1 warning(s)
</pre>
</body>
</html>
# End Source File
# Begin Source File
+SOURCE=..\..\libctsupport\cubicinterp.cpp
+# End Source File
+# Begin Source File
+
SOURCE=..\..\tools\if1.cpp
# End Source File
# Begin Source File
# End Source File
# Begin Source File
+SOURCE=..\..\libctsupport\cubicinterp.cpp
+# End Source File
+# Begin Source File
+
SOURCE=..\..\libctgraphics\dlgezplot.cpp
# End Source File
# Begin Source File
# End Source File
# Begin Source File
+SOURCE=..\..\include\cubicinterp.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\include\dlgezplot.h
# End Source File
# Begin Source File
** This is part of the CTSim program
** Copyright (c) 1983-2001 Kevin Rosenberg
**
-** $Id: views.cpp,v 1.100 2001/02/09 01:54:21 kevin Exp $
+** $Id: views.cpp,v 1.101 2001/02/09 14:34:16 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
m_iDefaultNView = 320;
#endif
m_iDefaultNSample = 1;
- m_dDefaultRotation = 1;
+ m_dDefaultRotation = 2;
m_dDefaultFocalLength = 2;
m_dDefaultViewRatio = 1;
m_dDefaultScanRatio = 1;
** This is part of the CTSim program
** Copyright (C) 1983-2000 Kevin Rosenberg
**
-** $Id: pjrec.cpp,v 1.21 2001/01/07 22:19:44 kevin Exp $
+** $Id: pjrec.cpp,v 1.22 2001/02/09 14:34:16 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
{0, 0, 0, 0}
};
-static const char* g_szIdStr = "$Id: pjrec.cpp,v 1.21 2001/01/07 22:19:44 kevin Exp $";
+static const char* g_szIdStr = "$Id: pjrec.cpp,v 1.22 2001/02/09 14:34:16 kevin Exp $";
void
pjrec_usage (const char *program)
std::cout << " nx-image Number of columns in output image" << std::endl;
std::cout << " ny-image Number of rows in output image" << std::endl;
std::cout << " --interp Interpolation method during backprojection" << std::endl;
- std::cout << " nearest Nearest neighbor interpolation" << std::endl;
- std::cout << " linear Linear interpolation" << std::endl;
+ std::cout << " nearest Nearest neighbor interpolation" << std::endl;
+ std::cout << " linear Linear interpolation (default)" << std::endl;
+ std::cout << " cubic Cubic interpolation\n";
#if HAVE_BSPLINE_INTERP
- std::cout << " bspline B-spline interpolation" << std::endl;
+ std::cout << " bspline B-spline interpolation" << std::endl;
#endif
std::cout << " --preinterpolate Preinterpolation factor (default = 1)\n";
std::cout << " Used only with frequency-based filtering\n";
std::cout << " --filter Filter name" << std::endl;
- std::cout << " abs_bandlimit Abs * Bandlimiting (default)" << std::endl;
- std::cout << " abs_sinc Abs * Sinc" << std::endl;
- std::cout << " abs_cosine Abs * Cosine" << std::endl;
- std::cout << " abs_hamming Abs * Hamming" << std::endl;
- std::cout << " shepp Shepp-Logan" << std::endl;
- std::cout << " bandlimit Bandlimiting" << std::endl;
- std::cout << " sinc Sinc" << std::endl;
- std::cout << " cosine Cosine" << std::endl;
- std::cout << " triangle Triangle" << std::endl;
- std::cout << " hamming Hamming" << std::endl;
+ std::cout << " abs_bandlimit Abs * Bandlimiting (default)" << std::endl;
+ std::cout << " abs_sinc Abs * Sinc" << std::endl;
+ std::cout << " abs_cosine Abs * Cosine" << std::endl;
+ std::cout << " abs_hamming Abs * Hamming" << std::endl;
+ std::cout << " shepp Shepp-Logan" << std::endl;
+ std::cout << " bandlimit Bandlimiting" << std::endl;
+ std::cout << " sinc Sinc" << std::endl;
+ std::cout << " cosine Cosine" << std::endl;
+ std::cout << " triangle Triangle" << std::endl;
+ std::cout << " hamming Hamming" << std::endl;
std::cout << " --filter-method Filter method before backprojections\n";;
std::cout << " convolution Spatial filtering (default)\n";
std::cout << " fourier Frequency filtering with discete fourier\n";