def Detector( sdd:float, # Source-to-detector distance (in units length) height:int, # Y-direction length (in units pixels) width:int, # X-direction length (in units pixels) delx:float, # X-direction spacing (in units length / pixel) dely:float, # Y-direction spacing (in units length / pixel) x0:float, # Principal point x-coordinate (in units length) y0:float, # Principal point y-coordinate (in units length) reorient:torch.Tensor, # Frame-of-reference change matrix n_subsample:int|None=None, # Number of target points to randomly sample reverse_x_axis:bool=False, # If pose includes reflection (in E(3) not SE(3)), reverse x-axis):
Construct a 6 DoF X-ray detector system. This model is based on a C-Arm.
def get_focal_length( intrinsic, # Intrinsic matrix (3 x 3 tensor) delx:float, # X-direction spacing (in units length) dely:float, # Y-direction spacing (in units length))->float: # Focal length (in units length)
def get_principal_point( intrinsic, # Intrinsic matrix (3 x 3 tensor) height:int, # Y-direction length (in units pixels) width:int, # X-direction length (in units pixels) delx:float, # X-direction spacing (in units length) dely:float, # Y-direction spacing (in units length)):
def parse_intrinsic_matrix( intrinsic, # Intrinsic matrix (3 x 3 tensor) height:int, # Y-direction length (in units pixels) width:int, # X-direction length (in units pixels) delx:float, # X-direction spacing (in units length) dely:float, # Y-direction spacing (in units length)):