fdk#

diffct.reconstruction.fdk(sinogram, trajectory, volume_shape, angles, *, detector_spacing=1.0, voxel_spacing=1.0, window='ram-lak', pad_factor=2, projection_weights=None, angular_weights=None, filter_response=None, short_scan=False, isocenter=None, backend='auto', precision='fast', devices=None, view_chunk_size=None, volume_chunk_shape=None, distributed=False, process_group=None, partition='views', partition_grid=None)[source]#

Differentiable flat-detector FDK; fixed geometry, approximate inversion.

sinogram is (views,U,V); volume_shape is (D,H,W). Filtering runs along U. detector_spacing is a scalar or (du,dv). The explicit weight/filter overrides and short_scan follow fbp(). Precision/backend, chunking and ownership follow fbp(). Voxel spacing may be a scalar or (dz,dy,dx). The backward pass is the precise discrete interpolation transpose; it does not make FDK an exact inverse. Use helical_fdk() for slice-centered integration of an axial helix.