summaryrefslogtreecommitdiffstats
path: root/include/astra/DataProjectorPolicies.inl
diff options
context:
space:
mode:
authorWillem Jan Palenstijn <wjp@usecode.org>2016-04-14 13:12:51 +0200
committerWillem Jan Palenstijn <wjp@usecode.org>2016-04-14 13:12:51 +0200
commit7633a0f48ce030413642627f16e50d27da4cf709 (patch)
tree53150eade1dd920644c690a1d9da741cedcefdf6 /include/astra/DataProjectorPolicies.inl
parenta7c4275ee8cd90b4ecf7fbca5d9571aae62a2931 (diff)
parent16430239d04ff738a21146c410918c285552543f (diff)
downloadastra-7633a0f48ce030413642627f16e50d27da4cf709.tar.gz
astra-7633a0f48ce030413642627f16e50d27da4cf709.tar.bz2
astra-7633a0f48ce030413642627f16e50d27da4cf709.tar.xz
astra-7633a0f48ce030413642627f16e50d27da4cf709.zip
Merge pull request #35 from wjp/relaxation
Add relaxation factor option to SIRT, SART
Diffstat (limited to 'include/astra/DataProjectorPolicies.inl')
-rw-r--r--include/astra/DataProjectorPolicies.inl6
1 files changed, 4 insertions, 2 deletions
diff --git a/include/astra/DataProjectorPolicies.inl b/include/astra/DataProjectorPolicies.inl
index 0c0eddd..f300761 100644
--- a/include/astra/DataProjectorPolicies.inl
+++ b/include/astra/DataProjectorPolicies.inl
@@ -712,12 +712,14 @@ SIRTBPPolicy::SIRTBPPolicy()
SIRTBPPolicy::SIRTBPPolicy(CFloat32VolumeData2D* _pReconstruction,
CFloat32ProjectionData2D* _pSinogram,
CFloat32VolumeData2D* _pTotalPixelWeight,
- CFloat32ProjectionData2D* _pTotalRayLength)
+ CFloat32ProjectionData2D* _pTotalRayLength,
+ float _fRelaxation)
{
m_pReconstruction = _pReconstruction;
m_pSinogram = _pSinogram;
m_pTotalPixelWeight = _pTotalPixelWeight;
m_pTotalRayLength = _pTotalRayLength;
+ m_fRelaxation = _fRelaxation;
}
//----------------------------------------------------------------------------------------
SIRTBPPolicy::~SIRTBPPolicy()
@@ -739,7 +741,7 @@ void SIRTBPPolicy::addWeight(int _iRayIndex, int _iVolumeIndex, float32 _fWeight
{
float32 fGammaBeta = m_pTotalPixelWeight->getData()[_iVolumeIndex] * m_pTotalRayLength->getData()[_iRayIndex];
if ((fGammaBeta > 0.001f) || (fGammaBeta < -0.001f)) {
- m_pReconstruction->getData()[_iVolumeIndex] += _fWeight * m_pSinogram->getData()[_iRayIndex] / fGammaBeta;
+ m_pReconstruction->getData()[_iVolumeIndex] += _fWeight * m_fRelaxation * m_pSinogram->getData()[_iRayIndex] / fGammaBeta;
}
}
//----------------------------------------------------------------------------------------