diff options
author | Willem Jan Palenstijn <wjp@usecode.org> | 2021-12-01 11:56:08 +0100 |
---|---|---|
committer | Willem Jan Palenstijn <wjp@usecode.org> | 2021-12-01 11:56:08 +0100 |
commit | c686f9ac537f7ebf66ea7d1fff7df19498c09525 (patch) | |
tree | 85f4d881f9ce4d4c21d809528afd150bb5d36960 | |
parent | 628e1da0b73140bd73501de3805b27b78ec8a19c (diff) | |
download | astra-c686f9ac537f7ebf66ea7d1fff7df19498c09525.tar.gz astra-c686f9ac537f7ebf66ea7d1fff7df19498c09525.tar.bz2 astra-c686f9ac537f7ebf66ea7d1fff7df19498c09525.tar.xz astra-c686f9ac537f7ebf66ea7d1fff7df19498c09525.zip |
Add test for FDK shortscan scaling
-rw-r--r-- | tests/python/test_rec_scaling.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/tests/python/test_rec_scaling.py b/tests/python/test_rec_scaling.py index ee27efc..a20aacb 100644 --- a/tests/python/test_rec_scaling.py +++ b/tests/python/test_rec_scaling.py @@ -20,7 +20,7 @@ def VolumeGeometries(is3D,noncube): yield astra.create_vol_geom(64, 64, 64, -32*s, 32*s, -32*s, 32*s, -32*s, 32*s) -def ProjectionGeometries(type): +def ProjectionGeometries(type,shortscan): if type == 'parallel': for dU in [0.8, 1.0, 1.25]: yield astra.create_proj_geom('parallel', dU, 256, np.linspace(0,np.pi,180,False)) @@ -51,11 +51,13 @@ def ProjectionGeometries(type): pg = astra.create_proj_geom('parallel3d_vec', 128, 128, Vectors) yield pg elif type == 'cone': + A = [1.5, 2] if shortscan else [ 2 ] for dU in [0.8, 1.0]: for dV in [0.8, 1.0]: for src in [500, 1000]: for det in [0, 250]: - yield astra.create_proj_geom('cone', dU, dV, 128, 128, np.linspace(0,2*np.pi,180,False), src, det) + for a in A: + yield astra.create_proj_geom('cone', dU, dV, 128, 128, np.linspace(0,a*np.pi,180,False), src, det) elif type == 'cone_vec': for j in range(10): Vectors = np.zeros([180,12]) @@ -81,7 +83,7 @@ class TestRecScale(unittest.TestCase): self.skipTest('CPU FBP is parallel-beam only') is3D = (geom_type in ['parallel3d', 'cone']) for vg in VolumeGeometries(is3D, 'FDK' not in alg): - for pg in ProjectionGeometries(geom_type): + for pg in ProjectionGeometries(geom_type, 'FDK' in alg): if not is3D: vol = np.zeros((128,128),dtype=np.float32) vol[50:70,50:70] = 1 @@ -109,6 +111,8 @@ class TestRecScale(unittest.TestCase): cfg['ReconstructionDataId'] = rec_id cfg['ProjectionDataId'] = sino_id cfg['ProjectorId'] = proj_id + if 'FDK' in alg and geom_type == "cone" and pg["ProjectionAngles"][-1] < 1.8*np.pi: + cfg['option'] = { 'ShortScan': True } alg_id = astra.algorithm.create(cfg) for i in range(iters): |