diff options
author | Willem Jan Palenstijn <WillemJan.Palenstijn@uantwerpen.be> | 2014-04-16 11:13:26 +0000 |
---|---|---|
committer | wpalenst <WillemJan.Palenstijn@uantwerpen.be> | 2014-04-16 11:13:26 +0000 |
commit | 959f476f456b147999649ec3a8cca10017b2ad6c (patch) | |
tree | 94964827cf31c9c16d1659d5a6c4940aee1a0796 /src | |
parent | 0c77eee16e2f4161c1ebc110b15ce6563d4a96c2 (diff) | |
download | astra-959f476f456b147999649ec3a8cca10017b2ad6c.tar.gz astra-959f476f456b147999649ec3a8cca10017b2ad6c.tar.bz2 astra-959f476f456b147999649ec3a8cca10017b2ad6c.tar.xz astra-959f476f456b147999649ec3a8cca10017b2ad6c.zip |
Add support for short-scan fan-beam FBP
Note that currently angles have to be negative for this to work.
(This should be changed.)
Diffstat (limited to 'src')
-rw-r--r-- | src/CudaFilteredBackProjectionAlgorithm.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
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<CFanFlatProjectionGeometry2D*>(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 { |