diff options
author | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2016-03-08 15:41:38 +0100 |
---|---|---|
committer | Willem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl> | 2016-04-18 11:54:31 +0200 |
commit | 048755bab6b77c1da0050ed091e5007a60564adf (patch) | |
tree | 4f0f2f1dabbf5d5fc01191c54fccd5a0f8eb3757 /include/astra | |
parent | b474576d36554f9322b57fedeeae493d88491f31 (diff) | |
download | astra-048755bab6b77c1da0050ed091e5007a60564adf.tar.gz astra-048755bab6b77c1da0050ed091e5007a60564adf.tar.bz2 astra-048755bab6b77c1da0050ed091e5007a60564adf.tar.xz astra-048755bab6b77c1da0050ed091e5007a60564adf.zip |
Use CompositeGeometryManager for FDK
Also fix a number of scaling/weighting issues in FDK, and
switch to standard cone_bp with FDKWeighting for the BP step.
Diffstat (limited to 'include/astra')
-rw-r--r-- | include/astra/CompositeGeometryManager.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/include/astra/CompositeGeometryManager.h b/include/astra/CompositeGeometryManager.h index 18dd72f..064370a 100644 --- a/include/astra/CompositeGeometryManager.h +++ b/include/astra/CompositeGeometryManager.h @@ -55,6 +55,10 @@ struct SGPUParams { size_t memory; }; +struct SFDKSettings { + bool bShortScan; +}; + class _AstraExport CCompositeGeometryManager { public: @@ -127,9 +131,10 @@ public: CProjector3D *pProjector; // For a `global' geometry. It will not match // the geometries of the input and output. + SFDKSettings FDKSettings; enum { - JOB_FP, JOB_BP, JOB_NOP + JOB_FP, JOB_BP, JOB_FDK, JOB_NOP } eType; enum { MODE_ADD, MODE_SET @@ -155,6 +160,8 @@ public: CFloat32ProjectionData3DMemory *pProjData); bool doBP(CProjector3D *pProjector, CFloat32VolumeData3DMemory *pVolData, CFloat32ProjectionData3DMemory *pProjData); + bool doFDK(CProjector3D *pProjector, CFloat32VolumeData3DMemory *pVolData, + CFloat32ProjectionData3DMemory *pProjData, bool bShortScan); bool doFP(CProjector3D *pProjector, const std::vector<CFloat32VolumeData3DMemory *>& volData, const std::vector<CFloat32ProjectionData3DMemory *>& projData); bool doBP(CProjector3D *pProjector, const std::vector<CFloat32VolumeData3DMemory *>& volData, const std::vector<CFloat32ProjectionData3DMemory *>& projData); |