X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;ds=sidebyside;f=include%2Fbackprojectors.h;h=ab15930d600eb6ca695f3adb2e407b0cf736977a;hb=52107baf438f31ce8930b062e7fdebf95d3fd9ee;hp=0a2a8e12c68b75ed0c91ffc17b42a97cb1e3a659;hpb=dfa390de2efc04d85b03718a6480f735516df0e8;p=ctsim.git diff --git a/include/backprojectors.h b/include/backprojectors.h index 0a2a8e1..ab15930 100644 --- a/include/backprojectors.h +++ b/include/backprojectors.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: backprojectors.h,v 1.6 2000/07/07 15:30:59 kevin Exp $ +** $Id: backprojectors.h,v 1.8 2000/07/11 10:32:44 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 @@ -52,7 +52,8 @@ class Backprojector I_2BSPLINE, I_3BSPLINE, #endif - INTERP_LINEAR // Linear interpolation + INTERP_LINEAR, // Linear interpolation + INTERP_FREQ_PREINTERPOLATION, } InterpolationID; static const char BPROJ_TRIG_STR[]= "trig"; @@ -65,9 +66,9 @@ class Backprojector static const char INTERP_NEAREST_STR[]= "nearest"; static const char INTERP_LINEAR_STR[]= "linear"; static const char INTERP_BSPLINE_STR[]= "bspline"; + static const char INTERP_FREQ_PREINTERPOLATION_STR[]= "freq_preinterpolation"; - - Backprojector (const Projections& proj, ImageFile& im, const char* const backprojName, const char* const interpName); + Backprojector (const Projections& proj, ImageFile& im, const char* const backprojName, const char* const interpName, const int interpFactor); ~Backprojector (void); @@ -90,14 +91,14 @@ class Backprojector static const BackprojectID convertBackprojectNameToID (const char* const bprojName); static const char* convertBackprojectIDToName (const BackprojectID bprojID); - bool initBackprojector (const Projections& proj, ImageFile& im, const char* const backprojName, const char* const interpName); + bool initBackprojector (const Projections& proj, ImageFile& im, const char* const backprojName, const char* const interpName, const int interpFactor); }; class Backproject { public: - Backproject (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType); + Backproject (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType, const int interpFactor); virtual ~Backproject (); @@ -120,6 +121,7 @@ class Backproject int nDet; double xMin, xMax, yMin, yMax; // Retangular coords of phantom double xInc, yInc; // size of cells + int m_interpFactor; private: Backproject (const Backproject& rhs); @@ -130,8 +132,8 @@ class Backproject class BackprojectTrig : public Backproject { public: - BackprojectTrig (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType) - : Backproject::Backproject (proj, im, interpType) + BackprojectTrig (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType, const int interpFactor) + : Backproject::Backproject (proj, im, interpType, interpFactor) {} void BackprojectView (const double* const t, double view_angle); @@ -141,7 +143,7 @@ class BackprojectTrig : public Backproject class BackprojectTable : public Backproject { public: - BackprojectTable (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType); + BackprojectTable (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType, const int interpFactor); ~BackprojectTable (); void BackprojectView (const double* const t, double view_angle); @@ -157,7 +159,7 @@ class BackprojectTable : public Backproject class BackprojectDiff : public Backproject { public: - BackprojectDiff (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType); + BackprojectDiff (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType, const int interpFactor); ~BackprojectDiff (); void BackprojectView (const double* const t, double view_angle); @@ -171,8 +173,8 @@ class BackprojectDiff : public Backproject class BackprojectDiff2 : public BackprojectDiff { public: - BackprojectDiff2 (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType) - : BackprojectDiff::BackprojectDiff (proj, im, interpType) + BackprojectDiff2 (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType, const int interpFactor) + : BackprojectDiff::BackprojectDiff (proj, im, interpType, interpFactor) {} void BackprojectView (const double* const t, double view_angle); @@ -181,8 +183,8 @@ class BackprojectDiff2 : public BackprojectDiff class BackprojectIntDiff2 : public BackprojectDiff { public: - BackprojectIntDiff2 (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType) - : BackprojectDiff::BackprojectDiff (proj, im, interpType) + BackprojectIntDiff2 (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType, const int interpFactor) + : BackprojectDiff::BackprojectDiff (proj, im, interpType, interpFactor) {} void BackprojectView (const double* const t, double view_angle); @@ -192,8 +194,8 @@ class BackprojectIntDiff2 : public BackprojectDiff class BackprojectIntDiff3 : public BackprojectDiff { public: - BackprojectIntDiff3 (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType) - : BackprojectDiff::BackprojectDiff (proj, im, interpType) + BackprojectIntDiff3 (const Projections& proj, ImageFile& im, Backprojector::InterpolationID interpType, const int interpFactor) + : BackprojectDiff::BackprojectDiff (proj, im, interpType, interpFactor) {} void BackprojectView (const double* const t, double view_angle);