mantidimaging.core.operations.flat_fielding.flat_fielding module#

class mantidimaging.core.operations.flat_fielding.flat_fielding.FlatFieldFilter[source]#

Bases: BaseFilter

Uses the flat (open beam) and dark images to normalise a stack of images (radiograms, projections), and to correct for a beam profile, scintillator imperfections and/or detector inhomogeneities. This operation produces images of transmission values.

In practice, several open beam and dark images are averaged in the flat-fielding process.

Intended to be used on: Projections

When: As one of the first pre-processing steps

Caution: Make sure the correct stacks are selected for flat and dark.

Caution: Check that the flat and dark images don’t have any very bright pixels, or this will introduce additional noise in the sample. Remove outliers before flat-fielding.

static execute_wrapper(flat_before_widget: DatasetSelectorWidgetView, flat_after_widget: DatasetSelectorWidgetView, dark_before_widget: DatasetSelectorWidgetView, dark_after_widget: DatasetSelectorWidgetView, selected_flat_fielding_widget: QComboBox, use_dark_widget: QCheckBox) partial[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, flat_before: ImageStack | None = None, flat_after: ImageStack | None = None, dark_before: ImageStack | None = None, dark_after: ImageStack | None = None, selected_flat_fielding: str | None = None, use_dark: bool = True, progress=None) ImageStack[source]#

Do background correction with flat and dark images. :param images: Sample data which is to be processed. Expected in radiograms :param flat_before: Flat (open beam) image to use in normalization, collected before the sample was imaged :param flat_after: Flat (open beam) image to use in normalization, collected after the sample was imaged :param dark_before: Dark image to use in normalization, collected before the sample was imaged :param dark_after: Dark image to use in normalization, collected after the sample was imaged :param selected_flat_fielding: Select which of the flat fielding methods to use, just Before stacks, just After

stacks or combined.

Parameters:

use_dark – Whether to use dark frame subtraction

Returns:

Filtered data (stack of images)

filter_name = 'Flat-fielding'#
static group_name() FilterGroup[source]#
static register_gui(form, on_change, view) dict[str, Any][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.

Parameters:
  • view

  • form – the layout to create input widgets in

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

Returns:

the widgets bound as kwargs which are needed to call execute_wrapper

static validate_execute_kwargs(kwargs)[source]#
mantidimaging.core.operations.flat_fielding.flat_fielding.enable_correct_fields_only(selected_flat_fielding_widget, flat_before_widget, flat_after_widget, dark_before_widget, dark_after_widget, use_dark_frame)[source]#