From 959f476f456b147999649ec3a8cca10017b2ad6c Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Wed, 16 Apr 2014 11:13:26 +0000 Subject: Add support for short-scan fan-beam FBP Note that currently angles have to be negative for this to work. (This should be changed.) --- src/CudaFilteredBackProjectionAlgorithm.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/CudaFilteredBackProjectionAlgorithm.cpp b/src/CudaFilteredBackProjectionAlgorithm.cpp index c53ac2d..39740c8 100644 --- a/src/CudaFilteredBackProjectionAlgorithm.cpp +++ b/src/CudaFilteredBackProjectionAlgorithm.cpp @@ -161,6 +161,14 @@ bool CCudaFilteredBackProjectionAlgorithm::initialize(const Config& _cfg) m_iPixelSuperSampling = (int)_cfg.self->getOptionNumerical("PixelSuperSampling", 1); CC.markOptionParsed("PixelSuperSampling"); + // Fan beam short scan mode + if (m_pSinogram && dynamic_cast(m_pSinogram->getGeometry())) { + m_bShortScan = (int)_cfg.self->getOptionBool("ShortScan", false); + CC.markOptionParsed("ShortScan"); + } + + + m_pFBP = new AstraFBP; m_bAstraFBPInit = false; @@ -185,6 +193,7 @@ bool CCudaFilteredBackProjectionAlgorithm::initialize(CFloat32ProjectionData2D * m_eFilter = _eFilter; m_iFilterWidth = _iFilterWidth; + m_bShortScan = false; // success m_bIsInitialized = true; @@ -251,7 +260,7 @@ void CCudaFilteredBackProjectionAlgorithm::run(int _iNrIterations /* = 0 */) fanprojgeom->getOriginSourceDistance(), fanprojgeom->getOriginDetectorDistance(), fanprojgeom->getDetectorWidth(), - false); // TODO: Support short-scan + m_bShortScan); iDetectorCount = fanprojgeom->getDetectorCount(); } else { -- cgit v1.2.3