X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=include%2Fprojections.h;h=38aea33307f716cff873a16961a4130c496602c2;hp=b86f448a9edd091f7c45248c5d4b355c1c6b9a6b;hb=8a7697ce57b56cdc43698cd1241ad98d49f9b5ac;hpb=9ff5b5165b2c8871bd4b29ccd5ca794638414615 diff --git a/include/projections.h b/include/projections.h index b86f448..38aea33 100644 --- a/include/projections.h +++ b/include/projections.h @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: projections.h,v 1.32 2001/03/13 04:44:25 kevin Exp $ +** $Id$ ** ** ** This program is free software; you can redistribute it and/or modify @@ -65,7 +65,7 @@ public: THETA_RANGE_FOLD_TO_PI, }; - ParallelRaysums (Projections* pProjections, int iThetaRange); + ParallelRaysums (const Projections* pProjections, int iThetaRange); ~ParallelRaysums (); typedef std::vector CoordinateContainer; @@ -84,6 +84,7 @@ private: CoordinateContainer m_vecpCoordinates; CoordinateContainer m_vecpSortedByT; CoordinateContainer m_vecpSortedByTheta; + ParallelRaysumCoordinate* m_pCoordinates; int m_iNumCoordinates; int m_iNumView; int m_iNumDet; @@ -121,6 +122,10 @@ class Projections void printProjectionData (); void printScanInfo (std::ostringstream& os) const; + int Helical180LI(int interpView); + int Helical180LI_Equiangular(int interpView); + int HalfScanFeather(void); + bool read (const std::string& fname); bool read (const char* fname); bool write (const char* fname); @@ -128,13 +133,15 @@ class Projections bool detarrayRead (fnetorderstream& fs, DetectorArray& darray, const int view_num); bool detarrayWrite (fnetorderstream& fs, const DetectorArray& darray, const int view_num); - Projections* interpolateToParallel(); + Projections* interpolateToParallel() const; bool convertPolar (ImageFile& rIF, int iInterpolation); bool convertFFTPolar (ImageFile& rIF, int iInterpolation, int iZeropad); - bool calcArrayPolarCoordinates (unsigned int nx, unsigned int ny, double** ppdView, double** ppdDet); + void calcArrayPolarCoordinates (unsigned int nx, unsigned int ny, double** ppdView, double** ppdDet, + int iNumDetWithZeros, double dZeropadRatio, double dDetInc); void interpolatePolar (ImageFileArray& v, ImageFileArray& vImag, unsigned int nx, unsigned int ny, std::complex** ppcDetValue, - double** ppdDet, double** ppdView, unsigned int nView, unsigned int nDet, int iInterpolate); + double** ppdDet, double** ppdView, unsigned int nView, unsigned int nDet, unsigned int nDetWithZeros, + int iInterpolate); bool reconstruct (ImageFile& im, const char* const filterName, double filt_param, const char* const filterMethodName, const int zeropad, const char* frequencyFilterName, const char* const interpName, int interp_param, const char* const backprojName, const int trace) const;