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 { | 
