ConeBeamGeometry.frommatrix¶
- classmethod ConeBeamGeometry.frommatrix(apart, dpart, src_radius, det_radius, init_matrix, det_curvature_radius=None, pitch=0, **kwargs)[source]¶
- Create an instance of - ConeBeamGeometryusing a matrix.- This alternative constructor uses a matrix to rotate and translate the default configuration. It is most useful when the transformation to be applied is already given as a matrix. - Parameters:
- apart1-dim. RectPartition
- Partition of the parameter interval. 
- dpart2-dim. RectPartition
- Partition of the detector parameter set. 
- src_radiusnonnegative float
- Radius of the source circle. 
- det_radiusnonnegative float
- Radius of the detector circle. Must be nonzero if - src_radiusis zero.
- init_matrixarray_like, shape(3, 3)or(3, 4), optional
- Transformation matrix whose left - (3, 3)block is multiplied with the default- det_pos_initand- det_axes_initto determine the new vectors. If present, the fourth column acts as a translation after the initial transformation. The resulting- det_axes_initwill be normalized.
- det_curvature_radius2-tuple of nonnegative floats, optional
- Radius or radii of the detector curvature. If - None, a flat detector is used. If- (r, None)or- (r, float('inf')), a cylindrical detector is used. If- (r1, r2), a spherical detector is used.
- pitchfloat, optional
- Constant distance along the rotation axis that a point on the helix traverses when increasing the angle parameter by - 2 * pi. The default case- pitch=0results in a circular cone beam geometry.
- kwargs
- Further keyword arguments passed to the class constructor. 
 
- apart1-dim. 
- Returns:
- geometryConeBeamGeometry
 
- geometry
 - Examples - Map unit vectors - e_y -> e_zand- e_z -> -e_y, keeping the right-handedness:- >>> apart = odl.uniform_partition(0, 2 * np.pi, 10) >>> dpart = odl.uniform_partition([-1, -1], [1, 1], (20, 20)) >>> matrix = np.array([[1, 0, 0], ... [0, 0, -1], ... [0, 1, 0]]) >>> geom = ConeBeamGeometry.frommatrix( ... apart, dpart, src_radius=5, det_radius=10, pitch=2, ... init_matrix=matrix) >>> geom.axis array([ 0., -1., 0.]) >>> geom.src_to_det_init array([ 0., 0., 1.]) >>> geom.det_axes_init array([[ 1., 0., 0.], [ 0., -1., 0.]]) - Adding a translation with a fourth matrix column: - >>> matrix = np.array([[0, 0, -1, 0], ... [0, 1, 0, 1], ... [1, 0, 0, 1]]) >>> geom = ConeBeamGeometry.frommatrix( ... apart, dpart, src_radius=5, det_radius=10, pitch=2, ... init_matrix=matrix) >>> geom.translation array([ 0., 1., 1.]) >>> geom.det_refpoint(0) # (0, 10, 0) + (0, 1, 1) array([ 0., 11., 1.])