summaryrefslogtreecommitdiffstats
path: root/include/astra/cuda/2d
diff options
context:
space:
mode:
authorWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2019-09-27 15:16:26 +0200
committerWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2019-09-27 15:16:26 +0200
commit54af7e8e22a3f1c9d90b13291b28d39778c05564 (patch)
tree260310b16d624261bb80f82979af27750022259b /include/astra/cuda/2d
parent1fec36f7ccadd5f7dcf2bb59b0654dc53653b0f3 (diff)
parentb629db207bb263495bfff2e61ce189ccac27b4b9 (diff)
downloadastra-54af7e8e22a3f1c9d90b13291b28d39778c05564.tar.gz
astra-54af7e8e22a3f1c9d90b13291b28d39778c05564.tar.bz2
astra-54af7e8e22a3f1c9d90b13291b28d39778c05564.tar.xz
astra-54af7e8e22a3f1c9d90b13291b28d39778c05564.zip
Merge branch 'consistent_scaling'
Diffstat (limited to 'include/astra/cuda/2d')
-rw-r--r--include/astra/cuda/2d/algo.h9
-rw-r--r--include/astra/cuda/2d/cgls.h2
-rw-r--r--include/astra/cuda/2d/fbp.h6
3 files changed, 13 insertions, 4 deletions
diff --git a/include/astra/cuda/2d/algo.h b/include/astra/cuda/2d/algo.h
index 3fccdef..b670b8b 100644
--- a/include/astra/cuda/2d/algo.h
+++ b/include/astra/cuda/2d/algo.h
@@ -56,6 +56,10 @@ public:
bool setSuperSampling(int raysPerDet, int raysPerPixelDim);
+ // Scale the final reconstruction.
+ // May be called at any time after setGeometry and before iterate(). Multiple calls stack.
+ bool setReconstructionScale(float fScale);
+
virtual bool enableVolumeMask();
virtual bool enableSinogramMask();
@@ -88,8 +92,7 @@ public:
// sinogram, reconstruction, volume mask and sinogram mask in system RAM,
// respectively. The corresponding pitch variables give the pitches
// of these buffers, measured in floats.
- // The sinogram is multiplied by fSinogramScale after uploading it.
- virtual bool copyDataToGPU(const float* pfSinogram, unsigned int iSinogramPitch, float fSinogramScale,
+ virtual bool copyDataToGPU(const float* pfSinogram, unsigned int iSinogramPitch,
const float* pfReconstruction, unsigned int iReconstructionPitch,
const float* pfVolMask, unsigned int iVolMaskPitch,
const float* pfSinoMask, unsigned int iSinoMaskPitch);
@@ -133,7 +136,7 @@ protected:
SDimensions dims;
SParProjection* parProjs;
SFanProjection* fanProjs;
- float fOutputScale;
+ float fProjectorScale;
bool freeGPUMemory;
diff --git a/include/astra/cuda/2d/cgls.h b/include/astra/cuda/2d/cgls.h
index 375a425..a854a74 100644
--- a/include/astra/cuda/2d/cgls.h
+++ b/include/astra/cuda/2d/cgls.h
@@ -47,7 +47,7 @@ public:
virtual bool setBuffers(float* D_volumeData, unsigned int volumePitch,
float* D_projData, unsigned int projPitch);
- virtual bool copyDataToGPU(const float* pfSinogram, unsigned int iSinogramPitch, float fSinogramScale,
+ virtual bool copyDataToGPU(const float* pfSinogram, unsigned int iSinogramPitch,
const float* pfReconstruction, unsigned int iReconstructionPitch,
const float* pfVolMask, unsigned int iVolMaskPitch,
const float* pfSinoMask, unsigned int iSinoMaskPitch);
diff --git a/include/astra/cuda/2d/fbp.h b/include/astra/cuda/2d/fbp.h
index 1adf3b1..3aa4741 100644
--- a/include/astra/cuda/2d/fbp.h
+++ b/include/astra/cuda/2d/fbp.h
@@ -79,6 +79,11 @@ public:
bool setShortScan(bool ss) { m_bShortScan = ss; return true; }
+ // Scale the final reconstruction.
+ // May be called at any time before iterate().
+ bool setReconstructionScale(float fScale);
+
+
virtual bool init();
virtual bool iterate(unsigned int iterations);
@@ -90,6 +95,7 @@ protected:
void* D_filter; // cufftComplex*
bool m_bShortScan;
+ float fReconstructionScale;
};
}