From a95e41ac40cd2f3a4401d921618604cf33f2a904 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Tue, 20 Jun 2000 18:46:29 +0000 Subject: [PATCH] r116: *** empty log message *** --- html/simulate.html.in | 8 ++++---- include/Makefile.am | 3 ++- include/filter.h | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 include/filter.h diff --git a/html/simulate.html.in b/html/simulate.html.in index 8b855a5..018a838 100644 --- a/html/simulate.html.in +++ b/html/simulate.html.in @@ -17,7 +17,7 @@ Phantom Name:
Nx:
Ny:

-Number of Samples
per pixel:
+Number of Samples
per pixel:

Display Window:
Minimum:
@@ -30,7 +30,7 @@ MPI Supercomputing:

Simulate X-Ray acquistion

Number of detectors:

Number of Rotations:

-Number of Rays
(samples) per detector:

+Number of Rays
(samples) per detector:

Rotation Angle
as a multiple of PI:

Image Reconstruction

@@ -53,8 +53,8 @@ Backprojection Method:
Trig
Trig Table
Difference
-Difference Optimized
-Difference Optimized (integer math)
+Difference Optimized
+Difference Optimized (integer math)

diff --git a/include/Makefile.am b/include/Makefile.am index 087655f..fa5be04 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1,4 +1,5 @@ -noinst_HEADERS=ct.h ezplot.h pol.h sgp.h array2d.h imagefile.h backprojectors.h mpiworld.h fnetorderstream.h phantom.h timer.h sstream scanner.h projections.h ctsupport.h +noinst_HEADERS=ct.h ezplot.h pol.h sgp.h array2d.h imagefile.h backprojectors.h mpiworld.h fnetorderstream.h phantom.h timer.h sstream scanner.h projections.h ctsupport.h filter.h + diff --git a/include/filter.h b/include/filter.h new file mode 100644 index 0000000..274d792 --- /dev/null +++ b/include/filter.h @@ -0,0 +1,38 @@ +class SignalFilter { + public: + + SignalFilter (const FilterType filt_type, double bw, double xmin, double xmax, int n, double param, const DomainType domain, const int numInt); + + ~SignalFilter (void); + + double* getFilter (void) const + { return m_vecFilter; } + + double convolve (const double f[], const double dx, const int n, const int np, const FunctionSymmetry func_type) const; + + double convolve (const float f[], const double dx, const int n, const int np, const FunctionSymmetry func_type) const; + + static double spatialResponseCalc (FilterType fType, double bw, double x, double param, int n); + + static double spatialResponseAnalytic (FilterType fType, double bw, double x, double param); + + static double frequencyResponse (FilterType fType, double bw, double u, double param); + + private: + double *m_vecFilter; + double m_bw; + FilterType m_filterType; + + double spatialResponseCalc (double x, double param, int n) const; + + double spatialResponseAnalytic (double x, double param) const; + + double frequencyResponse (double u, double param) const; + + static double sinc (double x, double mult) + { return (fabs(x) > F_EPSILON ? (sin (x * mult) / x) : 1.0); } + + static double integral_abscos (double u, double w); + +}; + -- 2.34.1