summaryrefslogtreecommitdiffstats
path: root/cuda/3d/sirt3d.cu
diff options
context:
space:
mode:
authorWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2016-03-23 15:50:24 +0100
committerWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2016-03-23 16:03:21 +0100
commit16430239d04ff738a21146c410918c285552543f (patch)
tree4a4e894d6ece87888b71bb69c32e53721fb7e2a9 /cuda/3d/sirt3d.cu
parent5edb35edc2c721b458334a65512b534912c2c542 (diff)
downloadastra-16430239d04ff738a21146c410918c285552543f.tar.gz
astra-16430239d04ff738a21146c410918c285552543f.tar.bz2
astra-16430239d04ff738a21146c410918c285552543f.tar.xz
astra-16430239d04ff738a21146c410918c285552543f.zip
Add relaxation parameters to SIRT3D
Diffstat (limited to 'cuda/3d/sirt3d.cu')
-rw-r--r--cuda/3d/sirt3d.cu8
1 files changed, 7 insertions, 1 deletions
diff --git a/cuda/3d/sirt3d.cu b/cuda/3d/sirt3d.cu
index 484521e..713944b 100644
--- a/cuda/3d/sirt3d.cu
+++ b/cuda/3d/sirt3d.cu
@@ -59,6 +59,8 @@ SIRT::SIRT() : ReconAlgo3D()
useMinConstraint = false;
useMaxConstraint = false;
+
+ fRelaxation = 1.0f;
}
@@ -89,6 +91,8 @@ void SIRT::reset()
useVolumeMask = false;
useSinogramMask = false;
+ fRelaxation = 1.0f;
+
ReconAlgo3D::reset();
}
@@ -196,6 +200,8 @@ bool SIRT::precomputeWeights()
// scale pixel weights with mask to zero out masked pixels
processVol3D<opMul>(D_pixelWeight, D_maskData, dims);
}
+ processVol3D<opMul>(D_pixelWeight, fRelaxation, dims);
+
return true;
}
@@ -307,7 +313,7 @@ bool SIRT::iterate(unsigned int iterations)
}
#endif
-
+ // pixel weights also contain the volume mask and relaxation factor
processVol3D<opAddMul>(D_volumeData, D_tmpData, D_pixelWeight, dims);
if (useMinConstraint)