mantidimaging.core.operations.remove_stripe_sorting_fitting.remove_stripe_sorting_fitting module#

class mantidimaging.core.operations.remove_stripe_sorting_fitting.remove_stripe_sorting_fitting.RemoveStripeSortingFittingFilter[source]#

Bases: BaseFilter

Stripe and ring artifact removal. Combination of algorithm 3 and 1 in Vo et al., Optics Express 28396 (2018). Remove stripes using the sorting and fitting technique.

Source: algotom/algotom

Intended to be used on: Sinograms

When: If stripes artifacts are present that have not been removed with outliers + flat-fielding the projections

Caution: Horizontal stripes caused by changes in image intensity (pixel values) should be fixed by ROI Normalisation instead!

static compute_function(index: int, array: ndarray, params: dict[str, Any])[source]#
static compute_function_sino(index: int, array: ndarray, params: dict[str, Any])[source]#
static execute_wrapper(order: QSpinBox, sigma: QSpinBox)[source]#

Should construct a partial call to _filter_func using values taken from the widgets passed to this function as kwargs. :param kwargs: widgets which contain values required for _filter_func. :return: a partial call to _filter_func using parameters taken from the input widgets.

static filter_func(images: ImageStack, order=1, sigma=3, progress=None)[source]#
  • order – The polynomial fit order. Check algotom docs for more information.

  • sigma – The sigma of the Gaussian window in the x-direction.


The ImageStack object with the stripes removed using the sorting and fitting technique.

filter_name = 'Remove stripes with sorting and fitting'#
static group_name() FilterGroup[source]#
operate_on_sinograms = True#
static register_gui(form, on_change, view)[source]#

Adds any required input widgets to the given form and returns references to them.

The return values should be in a dict which can be unpacked as kwargs for a call to the operations execute_wrapper.

  • view

  • form – the layout to create input widgets in

  • on_change – the filter view action to be bound to all created inputs


the widgets bound as kwargs which are needed to call execute_wrapper