summaryrefslogtreecommitdiffstats
path: root/python/astra/creators.py
diff options
context:
space:
mode:
authorAllard Hendriksen <Allard.Hendriksen@cwi.nl>2017-10-11 16:41:31 +0200
committerWillem Jan Palenstijn <Willem.Jan.Palenstijn@cwi.nl>2017-10-17 10:45:13 +0200
commita02ee2a02aead0c69acfd15693fd12d0d5efd52f (patch)
treec8b4695667ab6e149b11ad4ed4acf3862bb095c2 /python/astra/creators.py
parente92587a8ff2c012cabdcef833038bc350c4947b5 (diff)
downloadastra-a02ee2a02aead0c69acfd15693fd12d0d5efd52f.tar.gz
astra-a02ee2a02aead0c69acfd15693fd12d0d5efd52f.tar.bz2
astra-a02ee2a02aead0c69acfd15693fd12d0d5efd52f.tar.xz
astra-a02ee2a02aead0c69acfd15693fd12d0d5efd52f.zip
Improve python create_vol_geom
Remove redundant window computations. Also fixes the problem where >> astra.create_vol_geom(10,10,10) would not set the window options while all other parameter configurations of create_vol_geom did set the window options. Respects custom arguments for the window.
Diffstat (limited to 'python/astra/creators.py')
-rw-r--r--python/astra/creators.py29
1 files changed, 11 insertions, 18 deletions
diff --git a/python/astra/creators.py b/python/astra/creators.py
index 53d98e0..1e4d937 100644
--- a/python/astra/creators.py
+++ b/python/astra/creators.py
@@ -81,37 +81,19 @@ This method can be called in a number of ways:
if len(varargin) == 1 and isinstance(varargin[0], int) == 1:
vol_geom['GridRowCount'] = varargin[0]
vol_geom['GridColCount'] = varargin[0]
- vol_geom['option']['WindowMinX'] = -varargin[0] / 2.
- vol_geom['option']['WindowMaxX'] = varargin[0] / 2.
- vol_geom['option']['WindowMinY'] = -varargin[0] / 2.
- vol_geom['option']['WindowMaxY'] = varargin[0] / 2.
# astra_create_vol_geom([row_count col_count])
elif len(varargin) == 1 and len(varargin[0]) == 2:
vol_geom['GridRowCount'] = varargin[0][0]
vol_geom['GridColCount'] = varargin[0][1]
- vol_geom['option']['WindowMinX'] = -varargin[0][1] / 2.
- vol_geom['option']['WindowMaxX'] = varargin[0][1] / 2.
- vol_geom['option']['WindowMinY'] = -varargin[0][0] / 2.
- vol_geom['option']['WindowMaxY'] = varargin[0][0] / 2.
# astra_create_vol_geom([row_count col_count slice_count])
elif len(varargin) == 1 and len(varargin[0]) == 3:
vol_geom['GridRowCount'] = varargin[0][0]
vol_geom['GridColCount'] = varargin[0][1]
vol_geom['GridSliceCount'] = varargin[0][2]
- vol_geom['option']['WindowMinX'] = -varargin[0][1] / 2.
- vol_geom['option']['WindowMaxX'] = varargin[0][1] / 2.
- vol_geom['option']['WindowMinY'] = -varargin[0][0] / 2.
- vol_geom['option']['WindowMaxY'] = varargin[0][0] / 2.
- vol_geom['option']['WindowMinZ'] = -varargin[0][2] / 2.
- vol_geom['option']['WindowMaxZ'] = varargin[0][2] / 2.
# astra_create_vol_geom(row_count, col_count)
elif len(varargin) == 2:
vol_geom['GridRowCount'] = varargin[0]
vol_geom['GridColCount'] = varargin[1]
- vol_geom['option']['WindowMinX'] = -varargin[1] / 2.
- vol_geom['option']['WindowMaxX'] = varargin[1] / 2.
- vol_geom['option']['WindowMinY'] = -varargin[0] / 2.
- vol_geom['option']['WindowMaxY'] = varargin[0] / 2.
# astra_create_vol_geom(row_count, col_count, min_x, max_x, min_y, max_y)
elif len(varargin) == 6:
vol_geom['GridRowCount'] = varargin[0]
@@ -136,6 +118,17 @@ This method can be called in a number of ways:
vol_geom['option']['WindowMaxY'] = varargin[6]
vol_geom['option']['WindowMinZ'] = varargin[7]
vol_geom['option']['WindowMaxZ'] = varargin[8]
+
+ # set the window options, if not set already.
+ if not 'WindowMinX' in vol_geom['option']:
+ vol_geom['option']['WindowMinX'] = -vol_geom['GridColCount'] / 2.
+ vol_geom['option']['WindowMaxX'] = vol_geom['GridColCount'] / 2.
+ vol_geom['option']['WindowMinY'] = -vol_geom['GridRowCount'] / 2.
+ vol_geom['option']['WindowMaxY'] = vol_geom['GridRowCount'] / 2.
+ if 'GridSliceCount' in vol_geom:
+ vol_geom['option']['WindowMinZ'] = -vol_geom['GridSliceCount'] / 2.
+ vol_geom['option']['WindowMaxZ'] = vol_geom['GridSliceCount'] / 2.
+
return vol_geom