diff options
| author | Jakob Jorgensen <jakob.jorgensen@manchester.ac.uk> | 2018-03-07 10:02:03 +0000 | 
|---|---|---|
| committer | Jakob Jorgensen <jakob.jorgensen@manchester.ac.uk> | 2018-03-07 10:02:03 +0000 | 
| commit | 1d0e10be49f157d4f68bba54c0395d84fafd98a3 (patch) | |
| tree | 0dfeed105d5b57c700041f8f81386a49fa79b002 /Wrappers/Python | |
| parent | 5386d63eb97d96e727d68107c9c705f5598101cf (diff) | |
| download | framework-1d0e10be49f157d4f68bba54c0395d84fafd98a3.tar.gz framework-1d0e10be49f157d4f68bba54c0395d84fafd98a3.tar.bz2 framework-1d0e10be49f157d4f68bba54c0395d84fafd98a3.tar.xz framework-1d0e10be49f157d4f68bba54c0395d84fafd98a3.zip  | |
Extended geoms with channels attribute, added experimental mc demo script
Diffstat (limited to 'Wrappers/Python')
| -rw-r--r-- | Wrappers/Python/ccpi/reconstruction/geoms.py | 45 | ||||
| -rw-r--r-- | Wrappers/Python/test/simple_mc_demo.py | 43 | 
2 files changed, 68 insertions, 20 deletions
diff --git a/Wrappers/Python/ccpi/reconstruction/geoms.py b/Wrappers/Python/ccpi/reconstruction/geoms.py index edce3b3..9f81fa0 100644 --- a/Wrappers/Python/ccpi/reconstruction/geoms.py +++ b/Wrappers/Python/ccpi/reconstruction/geoms.py @@ -1,16 +1,17 @@  class VolumeGeometry: -    def __init__(self, \ -                 voxel_num_x=None, \ -                 voxel_num_y=None, \ -                 voxel_num_z=None, \ -                 voxel_size_x=None, \ -                 voxel_size_y=None, \ -                 voxel_size_z=None, \ -                 center_x=0, \ -                 center_y=0, \ -                 center_z=0): +    def __init__(self,  +                 voxel_num_x=None,  +                 voxel_num_y=None,  +                 voxel_num_z=None,  +                 voxel_size_x=None,  +                 voxel_size_y=None,  +                 voxel_size_z=None,  +                 center_x=0,  +                 center_y=0,  +                 center_z=0,  +                 channels=1):          self.voxel_num_x = voxel_num_x          self.voxel_num_y = voxel_num_y @@ -21,6 +22,7 @@ class VolumeGeometry:          self.center_x = center_x          self.center_y = center_y          self.center_z = center_z   +        self.channels = channels      def getMinX(self):          return self.center_x - 0.5*self.voxel_num_x*self.voxel_size_x @@ -43,16 +45,17 @@ class VolumeGeometry:  class SinogramGeometry: -    def __init__(self, \ -                 geom_type, \ -                 dimension, \ -                 angles, \ -                 pixel_num_h=None, \ -                 pixel_size_h=1, \ -                 pixel_num_v=None, \ -                 pixel_size_v=1, \ -                 dist_source_center=None, \ -                 dist_center_detector=None, \ +    def __init__(self,  +                 geom_type,  +                 dimension,  +                 angles,  +                 pixel_num_h=None,  +                 pixel_size_h=1,  +                 pixel_num_v=None,  +                 pixel_size_v=1,  +                 dist_source_center=None,  +                 dist_center_detector=None,  +                 channels=1                   ):          """          General inputs for standard type projection geometries @@ -91,6 +94,8 @@ class SinogramGeometry:          self.pixel_size_h = pixel_size_h          self.pixel_num_v = pixel_num_v          self.pixel_size_v = pixel_size_v +         +        self.channels = channels diff --git a/Wrappers/Python/test/simple_mc_demo.py b/Wrappers/Python/test/simple_mc_demo.py new file mode 100644 index 0000000..ca6a89e --- /dev/null +++ b/Wrappers/Python/test/simple_mc_demo.py @@ -0,0 +1,43 @@ + + +import sys + +sys.path.append("..") + +from ccpi.framework import * +from ccpi.reconstruction.algs import * +from ccpi.reconstruction.funcs import * +from ccpi.reconstruction.ops import * +from ccpi.reconstruction.astra_ops import * +from ccpi.reconstruction.geoms import * + +import numpy as np +import matplotlib.pyplot as plt + +test_case = 2   # 1=parallel2D, 2=cone2D + +# Set up phantom +N = 128 + +numchannels = 3 + +x = np.zeros((N,N,numchannels)) + +x[round(N/4):round(3*N/4),round(N/4):round(3*N/4),0] = 1.0 +x[round(N/8):round(7*N/8),round(3*N/8):round(5*N/8),0] = 2.0 + +x[round(N/4):round(3*N/4),round(N/4):round(3*N/4),1] = 0.7 +x[round(N/8):round(7*N/8),round(3*N/8):round(5*N/8),1] = 1.2 + +x[round(N/4):round(3*N/4),round(N/4):round(3*N/4),2] = 1.5 +x[round(N/8):round(7*N/8),round(3*N/8):round(5*N/8),2] = 2.2 + +f, axarr = plt.subplots(1,numchannels) +for k in numpy.arange(3): +    axarr[k].imshow(x[:,:,k],vmin=0,vmax=2.5) +plt.show() + +vg = VolumeGeometry(N,N,None, 1,1,None,channels=numchannels) + + +Phantom = VolumeData(x,geometry=vg)
\ No newline at end of file  | 
