linumpy.gpu.morphology#

GPU-accelerated morphological operations for linumpy.

Provides GPU versions of binary morphology, mask creation, and connected component operations.

Functions#

binary_closing(mask[, iterations, structure, use_gpu])

GPU-accelerated binary closing.

binary_opening(mask[, iterations, structure, use_gpu])

GPU-accelerated binary opening.

binary_dilation(mask[, iterations, structure, use_gpu])

GPU-accelerated binary dilation.

binary_erosion(mask[, iterations, structure, use_gpu])

GPU-accelerated binary erosion.

binary_fill_holes(mask[, use_gpu])

GPU-accelerated binary hole filling.

gaussian_filter(image, sigma[, use_gpu])

GPU-accelerated Gaussian filter.

median_filter(image, size[, use_gpu])

GPU-accelerated median filter.

create_tissue_mask(image[, sigma, threshold, ...])

GPU-accelerated tissue mask creation.

label_connected_components(mask[, _use_gpu])

Label connected components in a binary mask.

get_largest_component(mask[, use_gpu])

Get the largest connected component from a mask.

Module Contents#

linumpy.gpu.morphology.binary_closing(mask, iterations=1, structure=None, use_gpu=True)[source]#

GPU-accelerated binary closing.

Parameters:
  • mask (np.ndarray) – Binary mask

  • iterations (int) – Number of iterations

  • structure (np.ndarray, optional) – Structuring element

  • use_gpu (bool) – Whether to use GPU

Returns:

Closed mask

Return type:

np.ndarray

linumpy.gpu.morphology.binary_opening(mask, iterations=1, structure=None, use_gpu=True)[source]#

GPU-accelerated binary opening.

Parameters:
  • mask (np.ndarray) – Binary mask

  • iterations (int) – Number of iterations

  • structure (np.ndarray, optional) – Structuring element

  • use_gpu (bool) – Whether to use GPU

Returns:

Opened mask

Return type:

np.ndarray

linumpy.gpu.morphology.binary_dilation(mask, iterations=1, structure=None, use_gpu=True)[source]#

GPU-accelerated binary dilation.

Parameters:
  • mask (np.ndarray) – Binary mask

  • iterations (int) – Number of iterations

  • structure (np.ndarray, optional) – Structuring element

  • use_gpu (bool) – Whether to use GPU

Returns:

Dilated mask

Return type:

np.ndarray

linumpy.gpu.morphology.binary_erosion(mask, iterations=1, structure=None, use_gpu=True)[source]#

GPU-accelerated binary erosion.

Parameters:
  • mask (np.ndarray) – Binary mask

  • iterations (int) – Number of iterations

  • structure (np.ndarray, optional) – Structuring element

  • use_gpu (bool) – Whether to use GPU

Returns:

Eroded mask

Return type:

np.ndarray

linumpy.gpu.morphology.binary_fill_holes(mask, use_gpu=True)[source]#

GPU-accelerated binary hole filling.

Parameters:
  • mask (np.ndarray) – Binary mask

  • use_gpu (bool) – Whether to use GPU

Returns:

Mask with holes filled

Return type:

np.ndarray

linumpy.gpu.morphology.gaussian_filter(image, sigma, use_gpu=True)[source]#

GPU-accelerated Gaussian filter.

Parameters:
  • image (np.ndarray) – Input image

  • sigma (float or sequence) – Standard deviation for Gaussian kernel

  • use_gpu (bool) – Whether to use GPU

Returns:

Filtered image

Return type:

np.ndarray

linumpy.gpu.morphology.median_filter(image, size, use_gpu=True)[source]#

GPU-accelerated median filter.

Parameters:
  • image (np.ndarray) – Input image

  • size (int or sequence) – Filter size

  • use_gpu (bool) – Whether to use GPU

Returns:

Filtered image

Return type:

np.ndarray

linumpy.gpu.morphology.create_tissue_mask(image, sigma=2, threshold=None, fill_holes=True, min_opening=1, use_gpu=True)[source]#

GPU-accelerated tissue mask creation.

Parameters:
  • image (np.ndarray) – Input image

  • sigma (float) – Gaussian smoothing sigma

  • threshold (float, optional) – Threshold value. If None, uses Otsu

  • fill_holes (bool) – Whether to fill holes

  • min_opening (int) – Opening iterations for noise removal

  • use_gpu (bool) – Whether to use GPU

Returns:

Binary tissue mask

Return type:

np.ndarray

linumpy.gpu.morphology.label_connected_components(mask, _use_gpu=True)[source]#

Label connected components in a binary mask.

Note: CuPy’s connected components is limited. Falls back to CPU for complex cases.

Parameters:
  • mask (np.ndarray) – Binary mask

  • use_gpu (bool) – Whether to attempt GPU (may fall back to CPU)

  • _use_gpu (Any)

Returns:

  • np.ndarray – Labeled array

  • int – Number of labels

Return type:

Any

linumpy.gpu.morphology.get_largest_component(mask, use_gpu=True)[source]#

Get the largest connected component from a mask.

Parameters:
  • mask (np.ndarray) – Binary mask

  • use_gpu (bool) – Whether to use GPU for histogram

Returns:

Binary mask of largest component

Return type:

np.ndarray