r116: *** empty log message ***
authorKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 20 Jun 2000 18:46:29 +0000 (18:46 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 20 Jun 2000 18:46:29 +0000 (18:46 +0000)
html/simulate.html.in
include/Makefile.am
include/filter.h [new file with mode: 0644]

index 8b855a59479771560a3c1a6aa9637b5e78aac5c3..018a8382ab9c6df492d28ce431bdbf61846ab73c 100644 (file)
@@ -17,7 +17,7 @@ Phantom Name:<br>
 Nx: <input type="text" name="Phantom_Nx" size="4" value="256"><br>
 Ny: <input type="text" name="Phantom_Ny" size="4" value="256"><br>
 <p>
-Number of Samples<br>per pixel: <input type="text" name="Phantom_NSample" size="2" value="1"><br>
+Number of Samples<br>per pixel: <input type="text" name="Phantom_NSample" size="2" value="2"><br>
 <p>
 Display Window:<br>
 Minimum: <input type="text" name="Disp_Min" size=5 value="auto"><br>
@@ -30,7 +30,7 @@ MPI Supercomputing:<br>
 <h3>Simulate X-Ray acquistion</h3>
 Number of detectors: <input type="text" name="PJ_NDet" size="4" value="367"><p>
 Number of Rotations: <input type="text" name="PJ_NRot" size="4" value="320"><p>
-Number of Rays<br>(samples) per detector: <input type="text" name="PJ_NRay" size="2" value="1"><p>
+Number of Rays<br>(samples) per detector: <input type="text" name="PJ_NRay" size="2" value="3"><p>
 Rotation Angle<br>as a multiple of PI: <input type="text" name="PJ_RotAngle" size="3" value="1.0"><br>
 </td><td valign="top">
 <H3>Image Reconstruction</H3>
@@ -53,8 +53,8 @@ Backprojection Method:<br>
 <input type="radio" name="IR_Backproj" value="trig">Trig<br>
 <input type="radio" name="IR_Backproj" value="table">Trig Table<br>
 <input type="radio" name="IR_Backproj" value="diff">Difference<br>
-<input type="radio" name="IR_Backproj" value="diff2" checked>Difference Optimized<br>
-<input type="radio" name="IR_Backproj" value="idiff2">Difference Optimized (integer math)<br>
+<input type="radio" name="IR_Backproj" value="diff2">Difference Optimized<br>
+<input type="radio" name="IR_Backproj" value="idiff2" checked>Difference Optimized (integer math)<br>
 </td></tr></table>
 <p>
 <input type="submit" value="Simulate"><input type="reset" value="clear fields">
index 087655fbbe0d5a4a934333a7cc8b44f1663ce1fd..fa5be04ebbb9efc5fb45f1c480bce246c7143c77 100644 (file)
@@ -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 (file)
index 0000000..274d792
--- /dev/null
@@ -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);
+
+};
+