nabu.pipeline.helical.filtering module

class nabu.pipeline.helical.filtering.HelicalSinoFilter(sino_shape, filter_name=None, padding_mode='zeros', extra_options=None, cuda_options=None)[source]

Bases: CudaSinoFilter

Derived from nabu.reconstruction.filtering.SinoFilter It is used by helical_chunked_regridded pipeline. The shape of the processed sino, as a matter of fact which is due to the helical_chunked_regridded.py module which is using the here present class, is always, but not necessarily [nangles, nslices, nhorizontal] with nslices = 1. This because helical_chunked_regridded.py after a first preprocessing phase, always processes slices one by one. In helical_chunked_regridded .py, the call to the filter_sino method here contained is followed by the weight redistribution ( done by another module), which solves the HA problem, and the backprojection. The latter is performed by fbp.py or hbp.py

The reason for having this class, derived from nabu.reconstruction.filtering.SinoFilter, is that the padding mechanism here implemented incorporates the padding with the available theta+180 projection on the half-tomo side.

filter_sino(sino, mirror_indexes=None, rot_center=None, output=None, no_output=False)[source]

Perform the sinogram siltering. redefined here to use also mirror data :param sino: Input sinogram (2D or 3D) :type sino: numpy.ndarray or pycuda.gpuarray.GPUArray :param output: Output array. :type output: numpy.ndarray or pycuda.gpuarray.GPUArray, optional :param no_output: If set to True, no copy is be done. The resulting data lies

in self.d_sino_padded.