phenotypic.enhance.WhiteTophatEnhance#

class phenotypic.enhance.WhiteTophatEnhance(shape: str = 'disk', width: int | None = None)[source]

Bases: ImageEnhancer

Isolate small bright structures in detect_mat with the white top-hat transform.

Computes the white top-hat (original minus morphological opening) and retains the result, extracting bright features smaller than the structuring element while suppressing larger background structures. Highlights small bright colonies, inocula, or specks against uneven illumination.

For algorithm details, see What Enhancement Actually Does.

Parameters:
  • shape (str) – Footprint geometry. 'disk' (default) preserves rounded colony shapes; 'diamond' is computationally efficient; 'square' can align with sensor grid artifacts.

  • width (int) – Maximum bright-object size (pixels) targeted for extraction. Set slightly larger than the maximum size of colonies you want to isolate. None (default) derives a small value from image dimensions.

Returns:

Input image with detect_mat containing only the extracted small bright structures. rgb and gray are unchanged.

Return type:

Image

Raises:

ValueError – If an unsupported footprint shape is provided.

Best For:
  • Isolating small bright colonies from larger background structures.

  • Highlighting faint small colonies against uneven illumination.

  • Extracting tiny bright specks for detection or quantification.

  • Preprocessing before detecting small colony phenotypes.

Consider Also:

See also

Tutorial 3: Enhancing Before Detection for a visual walkthrough of morphological enhancement on plate images.

Methods

__init__

apply

Applies the operation to an image, either in-place or on a copy.

widget

Return (and optionally display) the root widget.

__del__()

Automatically stop tracemalloc when the object is deleted.

__getstate__()

Prepare the object for pickling by disposing of any widgets.

This ensures that UI components (which may contain unpickleable objects like input functions or thread locks) are cleaned up before serialization.

Note

This method modifies the object state by calling dispose_widgets(). Any active widgets will be detached from the object.

apply(image, inplace=False)

Applies the operation to an image, either in-place or on a copy.

Parameters:
  • image (Image) – The arr image to apply the operation on.

  • inplace (bool) – If True, modifies the image in place; otherwise, operates on a copy of the image.

Returns:

The modified image after applying the operation.

Return type:

Image

widget(image: Image | None = None, show: bool = False) Widget

Return (and optionally display) the root widget.

Parameters:
  • image (Image | None) – Optional image to visualize. If provided, visualization controls will be added to the widget.

  • show (bool) – Whether to display the widget immediately. Defaults to False.

Returns:

The root widget.

Return type:

ipywidgets.Widget

Raises:

ImportError – If ipywidgets or IPython are not installed.