summaryrefslogtreecommitdiffstats
path: root/cuda/3d/sirt3d.h
diff options
context:
space:
mode:
Diffstat (limited to 'cuda/3d/sirt3d.h')
-rw-r--r--cuda/3d/sirt3d.h121
1 files changed, 0 insertions, 121 deletions
diff --git a/cuda/3d/sirt3d.h b/cuda/3d/sirt3d.h
deleted file mode 100644
index 7c9a7c0..0000000
--- a/cuda/3d/sirt3d.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
------------------------------------------------------------------------
-Copyright: 2010-2018, imec Vision Lab, University of Antwerp
- 2014-2018, CWI, Amsterdam
-
-Contact: astra@astra-toolbox.com
-Website: http://www.astra-toolbox.com/
-
-This file is part of the ASTRA Toolbox.
-
-
-The ASTRA Toolbox is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-The ASTRA Toolbox is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with the ASTRA Toolbox. If not, see <http://www.gnu.org/licenses/>.
-
------------------------------------------------------------------------
-*/
-
-#ifndef _CUDA_SIRT3D_H
-#define _CUDA_SIRT3D_H
-
-#include "algo3d.h"
-
-namespace astraCUDA3d {
-
-class _AstraExport SIRT : public ReconAlgo3D {
-public:
- SIRT();
- ~SIRT();
-
-// bool setConeGeometry(const SDimensions3D& dims, const SConeProjection* projs);
-
-
- bool enableVolumeMask();
- bool enableSinogramMask();
-
- // init should be called after setting all geometry
- bool init();
-
- // Set relaxation factor. This may be called after init and before iterate.
- void setRelaxation(float r) { fRelaxation = r; }
-
- // setVolumeMask should be called after init and before iterate,
- // but only if enableVolumeMask was called before init.
- // It may be called again after iterate.
- bool setVolumeMask(cudaPitchedPtr& D_maskData);
-
- // setSinogramMask should be called after init and before iterate,
- // but only if enableSinogramMask was called before init.
- // It may be called again after iterate.
- bool setSinogramMask(cudaPitchedPtr& D_smaskData);
-
-
- // setBuffers should be called after init and before iterate.
- // It may be called again after iterate.
- bool setBuffers(cudaPitchedPtr& D_volumeData,
- cudaPitchedPtr& D_projData);
-
-
- // set Min/Max constraints. They may be called at any time, and will affect
- // any iterate() calls afterwards.
- bool setMinConstraint(float fMin);
- bool setMaxConstraint(float fMax);
-
- // iterate should be called after init and setBuffers.
- // It may be called multiple times.
- bool iterate(unsigned int iterations);
-
- // Compute the norm of the difference of the FP of the current reconstruction
- // and the sinogram. (This performs one FP.)
- // It can be called after iterate.
- float computeDiffNorm();
-
-protected:
- void reset();
- bool precomputeWeights();
-
- bool useVolumeMask;
- bool useSinogramMask;
-
- bool useMinConstraint;
- bool useMaxConstraint;
- float fMinConstraint;
- float fMaxConstraint;
-
- float fRelaxation;
-
- cudaPitchedPtr D_maskData;
- cudaPitchedPtr D_smaskData;
-
- // Input/output
- cudaPitchedPtr D_sinoData;
- cudaPitchedPtr D_volumeData;
-
- // Temporary buffers
- cudaPitchedPtr D_projData;
- cudaPitchedPtr D_tmpData;
-
- // Geometry-specific precomputed data
- cudaPitchedPtr D_lineWeight;
- cudaPitchedPtr D_pixelWeight;
-};
-
-bool doSIRT(cudaPitchedPtr D_volumeData, unsigned int volumePitch,
- cudaPitchedPtr D_projData, unsigned int projPitch,
- cudaPitchedPtr D_maskData, unsigned int maskPitch,
- const SDimensions3D& dims, const SConeProjection* projs,
- unsigned int iterations);
-
-}
-
-#endif